- 浏览: 283058 次
- 性别:
文章分类
最新评论
编写一个对数组进行操作的函数,目的是返回数组内所用元素的和。
第一种形式:函数原型为int sum(int ar[],int n)
#include<stdio.h> #define SIZE 4 int sum(int ar[],int n); int main(int argc,char *argv[]) { int arrays[SIZE] = {1,2,3,4}; long answer; answer = sum(arrays,SIZE); printf("total:%ld.\n",answer); printf("the size of arrays is %ld bytes.\n",sizeof(arrays)); return 0; } int sum(int ar[],int n) { int total; for(int i =0; i < n; i++) total += ar[i]; printf("the size of ar is %zd bytes\n",sizeof ar); }
程序运行的结果:
the size of ar is 4 bytes
total:10.
the size of arrays is 16 bytes.
请按任意键继续. . .
可以看出ar本身不是一个数组,它是一个指向arrays的首元素的指针。
第二种形式: 函数原型:int sum(int *ar,int n)
#include<stdio.h>
int sum(int *a,int n);
#define SIZE 4 int main(int argc,char *argv[]) { int arrays[SIZE] = {1,2,3,4}; long answer; answer = sum(arrays,SIZE); printf("total:%ld.\n",answer); printf("the size of arrays is %ld bytes.\n",sizeof(arrays)); return 0; } int sum(int *ar,int n) { int total = 0; //要初始化 for(int i =0; i < n; i++) total += ar[i]; //ar[i] 与*(ar +i)相同 printf("the size of ar is %d bytes\n",sizeof ar); return total; }
运行结果与第一种形式一样
第一种和第二种方式好像是一样的吧?
第三种方式:传递数据开始与结束地址。函数原型:
#include<stdio.h> #include<string.h> #define SIZE 4 int sum(int *start,int * end); //void swap(int * a,int * b); int main(int argc,char *argv[]) { int arrays[SIZE] = {1,2,3,4}; long answer; answer = sum(arrays,arrays + SIZE); printf("total:%ld.\n",answer); return 0; } int sum(int *start,int *end) { int total = 0; //要初始化 while(start < end) { total +=*start; start++; } return total; }
运行结果:
total:10.
请按任意键继续. . .
发表评论
-
C中结构体
2013-01-09 15:47 615把结构体保存到文件中,用fwrite()函数: fwrite ... -
关于socket编程中基本函数介绍
2012-11-03 13:57 1029源自:http://blog.sina.com.cn/s/bl ... -
C中需要注意的小问题
2012-09-27 08:59 8121.在用scanf()函数读入double型数值时要用%lf的 ... -
指针和多维数组
2011-12-26 10:03 812摘自:《C primer plus》 指针和多位数组 ... -
C中<ctype.h>库
2011-12-19 20:21 718标准库<ctype.h> 1 ... -
C中double类型数据的输入和输出
2011-12-19 10:04 12392double a; scanf(" ... -
C中printf()和scanf()函数说明
2011-12-16 19:58 1589下面是对printf()和scanf()函数的说明: ... -
C中转义序列及其含义
2011-12-15 20:27 972转义序列: 序列 ... -
C中各数据类型取值范围
2011-12-15 19:31 13891.标准头文件<limits.h>中包含了 ... -
C中常用的类型转换函数
2011-12-14 17:34 815源自:http://hi.baidu.com/hao_%BF% ... -
C语言格式化输出系统时间
2011-12-14 17:04 5931源自:http://blog.csdn.net/jiadeli ... -
C中目标代码文件,可执行文件和库
2011-12-14 10:19 1955C编程的基本策略是使用程序将源代码文件转换为可执行 ... -
vs2008下vc的库函数及头文件存放位置
2011-12-13 22:14 4569在写C/C++程序时总会在开头包含一些头文件,如:#inclu ... -
malloc()函数
2011-12-12 17:35 0待写 -
用C写的模拟掷骰子程序
2011-12-12 16:47 2345整理自:《C Primer Plus》第五版 此程序包 ... -
C中字符串的输入输出及相关函数
2011-12-27 21:59 3841//本节内容摘自对Stephen Prata的《C Prime ... -
指针的基本操作以及关于指针的注意事项
2011-12-11 17:42 916一. 指针的基本操作有:赋值(assignment),求值(v ... -
关于*与++的优先级
2011-12-11 16:53 1722C中一元运算符*和++具有相等的优先级,但它们在结合时是从右向 ... -
C中有关数组的说明
2011-12-09 11:10 787下面介绍一下关于数组的一些说明: 在数组声明时必须 ... -
C语言中对sizeof()和strlen()的说明
2011-12-09 10:01 11181.sizeof函数 sizeof函数返回表达式所占的内存空 ...
相关推荐
C语言中二维数组作为函数参数来传递的三种方法 在C语言中,二维数组作为函数参数来传递是非常常见的操作。但是,如何正确地传递二维数组作为函数参数却是许多初学者和开发者经常混淆的地方。今天,我们将详细介绍...
如果DLL是由你自己编写,需要确保在C/C++等其他语言中正确处理数组参数。通常,DLL函数接收`LPVOID`类型的参数,然后根据数组长度和类型进行解包处理。 通过以上步骤,你可以在易语言源码中成功向DLL传递数组参数...
在易语言中,向DLL传递数组参数主要涉及以下知识点: 1. **DLL声明**: 在易语言中,使用`外部程序库`模块声明DLL,并定义其函数。例如,如果有一个DLL函数接受一个整数数组作为参数,可以这样声明: ```易语言 ...
在C语言中,二维数组是处理表格数据的一种基础方式,它本质上是一组一维数组的集合,每个一维数组代表数组的一行。本编程练习旨在加深对C语言中二维数组、指针和函数的理解,通过实际操作提升编程技能。下面我们将...
- **数组作为函数参数**:数组可以作为函数参数传递,但实际传递的是数组首地址。在函数内部无法改变数组的大小。 - **数组运算符`[]`**:数组与索引运算符`[]`结合,用于访问和修改数组元素。 - **数组与运算符`...
本实例将详细介绍如何在C#中调用C++的DLL,并处理回调函数、字符串和整型数组参数的传递。 首先,C++的DLL需要定义导出函数,以便C#能够访问。这些函数通常使用`extern "C"`来避免C++的名称修饰,以确保C#能正确...
综上所述,本示例程序展示了如何在C++中有效地使用数组,特别是如何将数组作为参数传递给函数。通过这种方式,可以在不复制数组的情况下,高效地在多个函数间共享数据,这对于处理大量数据或复杂运算场景非常有用。...
在使用变长数组时,需要特别注意其内存分配和释放的特性,以及在函数参数传递中的行为。由于数组的大小在运行时确定,这意味着传递变长数组给函数时,需要考虑内存分配和管理的责任划分。在某些情况下,可能需要通过...
在C语言中,数组是一种非常重要的数据结构,用于存储同类型的数据集合。...总结起来,C语言中数组在函数中的使用主要包括作为参数传递和通过返回指针来间接返回数组。理解这些概念对于编写高效的C语言程序至关重要。
- **函数指针**:可以存储函数地址的变量,使得函数可以作为参数传递或作为其他函数的返回值。 4. **指针**: - 指针是C语言的一大特色,它存储了一个变量的内存地址。 - 指针的声明、初始化和解引用是学习的...
在C语言中,数组也可以作为函数参数传递。当我们把数组名作为函数参数时,实际上传递的是数组的首地址,而不是整个数组的副本。因此,函数内部对数组元素的修改会影响到原始数组。这种特性使得数组处理变得更加高效...
以下是对C语言数组的详细讲解: 1. **数组定义与声明** C语言中的数组可以被定义为具有固定大小的同类型元素集合。数组的声明通常包括数组名、元素类型以及数组的大小。例如,如果你要创建一个包含10个整数的数组...
在某些情况下,数组名可能会失去其作为数据结构的全部含义,尤其是当它作为函数参数传递时。在函数的局部作用域内,数组名退化为普通的指针,失去了关于数组大小的信息。这意味着在函数内部无法直接得知传入的“指针...
在这个特定的例子中,我们将探讨如何通过一个数组参数来传递数据给存储过程,这对于处理批量操作或者一组相关的数据非常有用。 1. **数组参数的概念**: 在SQL Server中,我们不能直接定义一个数组类型的参数。...
C/C++中多维数组指针作为函数参数传递程序 在 C++ 中,多维数组指针作为函数参数传递是非常常见的编程技术。本文将详细介绍如何在 C/C++ 中将多维数组指针作为函数参数传递,並对相关知识点进行详细解释。 多维...
为了解决这个问题,我们可以利用`qs`这个插件来序列化数组参数,使其以期望的形式传递。 `qs`(Query String)是一个Node.js库,用于解析和序列化URL查询字符串。在Vue中,特别是当我们使用像axios这样的HTTP客户端...
为了解决这一问题,文章明确了传递方式和数据类型是函数参数传递中的两个基本概念。传递方式指的是参数传递到函数内部的方式,而数据类型则是指参数所代表的数据种类。 在深入分析中,文章通过举例分析了三种情况:...
2. **数组名称作函数实参**:C语言中,数组名实际上是对数组首地址的引用,因此,当数组名作为参数传递时,传递的是数组的首地址,而不是数组的复制。这意味着函数可以访问整个数组,但不能改变数组的大小。例如: ...
这个“c语言习题(数组).zip”文件很可能包含了一系列关于C语言数组的练习题目,帮助学习者深化对数组的理解和应用。 数组在C语言中的基本概念是这样的:数组是一个同类型的元素序列,它们在内存中是连续存储的。...
今天我们将深入探讨指针在数组参数和指针参数中的应用。 一、回顾 在学习指针之前,我们需要回顾一下基本概念。指针是一个变量,它存储的是内存地址。我们可以通过指针来访问和操作内存中的数据。在C语言中,指针...