`

C中关于数组参数的传递

 
阅读更多

编写一个对数组进行操作的函数,目的是返回数组内所用元素的和。

 

第一种形式:函数原型为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.

请按任意键继续. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    C语言中二维数组作为函数参数来传递的三种方法

    C语言中二维数组作为函数参数来传递的三种方法 在C语言中,二维数组作为函数参数来传递是非常常见的操作。但是,如何正确地传递二维数组作为函数参数却是许多初学者和开发者经常混淆的地方。今天,我们将详细介绍...

    易语言源码向DLL传递数组参数的实现方法.rar

    如果DLL是由你自己编写,需要确保在C/C++等其他语言中正确处理数组参数。通常,DLL函数接收`LPVOID`类型的参数,然后根据数组长度和类型进行解包处理。 通过以上步骤,你可以在易语言源码中成功向DLL传递数组参数...

    向DLL传递数组参数的实现方法

    在易语言中,向DLL传递数组参数主要涉及以下知识点: 1. **DLL声明**: 在易语言中,使用`外部程序库`模块声明DLL,并定义其函数。例如,如果有一个DLL函数接受一个整数数组作为参数,可以这样声明: ```易语言 ...

    C语言二维数组编程练习

    在C语言中,二维数组是处理表格数据的一种基础方式,它本质上是一组一维数组的集合,每个一维数组代表数组的一行。本编程练习旨在加深对C语言中二维数组、指针和函数的理解,通过实际操作提升编程技能。下面我们将...

    C语言中的数组运算

    - **数组作为函数参数**:数组可以作为函数参数传递,但实际传递的是数组首地址。在函数内部无法改变数组的大小。 - **数组运算符`[]`**:数组与索引运算符`[]`结合,用于访问和修改数组元素。 - **数组与运算符`...

    C#调用C++的dll实例,回调函数,string和int数组参数传递

    本实例将详细介绍如何在C#中调用C++的DLL,并处理回调函数、字符串和整型数组参数的传递。 首先,C++的DLL需要定义导出函数,以便C#能够访问。这些函数通常使用`extern "C"`来避免C++的名称修饰,以确保C#能正确...

    VC++数组的传递方式

    综上所述,本示例程序展示了如何在C++中有效地使用数组,特别是如何将数组作为参数传递给函数。通过这种方式,可以在不复制数组的情况下,高效地在多个函数间共享数据,这对于处理大量数据或复杂运算场景非常有用。...

    C语言变长数组之剖析

    在使用变长数组时,需要特别注意其内存分配和释放的特性,以及在函数参数传递中的行为。由于数组的大小在运行时确定,这意味着传递变长数组给函数时,需要考虑内存分配和管理的责任划分。在某些情况下,可能需要通过...

    C语言中数组作为函数的参数以及返回值的使用简单入门

    在C语言中,数组是一种非常重要的数据结构,用于存储同类型的数据集合。...总结起来,C语言中数组在函数中的使用主要包括作为参数传递和通过返回指针来间接返回数组。理解这些概念对于编写高效的C语言程序至关重要。

    C语言循环、数组、函数及指针练习题精选及答案

    - **函数指针**:可以存储函数地址的变量,使得函数可以作为参数传递或作为其他函数的返回值。 4. **指针**: - 指针是C语言的一大特色,它存储了一个变量的内存地址。 - 指针的声明、初始化和解引用是学习的...

    C语言-数组部分课件

    在C语言中,数组也可以作为函数参数传递。当我们把数组名作为函数参数时,实际上传递的是数组的首地址,而不是整个数组的副本。因此,函数内部对数组元素的修改会影响到原始数组。这种特性使得数组处理变得更加高效...

    C语言关于数组实例饿饿不

    以下是对C语言数组的详细讲解: 1. **数组定义与声明** C语言中的数组可以被定义为具有固定大小的同类型元素集合。数组的声明通常包括数组名、元素类型以及数组的大小。例如,如果你要创建一个包含10个整数的数组...

    c语言中 数组名和指针的区别

    在某些情况下,数组名可能会失去其作为数据结构的全部含义,尤其是当它作为函数参数传递时。在函数的局部作用域内,数组名退化为普通的指针,失去了关于数组大小的信息。这意味着在函数内部无法直接得知传入的“指针...

    一个基于SQL server 2005实现的通过一个数组参数进行Procedure的parameter传递例子

    在这个特定的例子中,我们将探讨如何通过一个数组参数来传递数据给存储过程,这对于处理批量操作或者一组相关的数据非常有用。 1. **数组参数的概念**: 在SQL Server中,我们不能直接定义一个数组类型的参数。...

    C/C++中多维数组指针作为函数参数传递程序

    C/C++中多维数组指针作为函数参数传递程序 在 C++ 中,多维数组指针作为函数参数传递是非常常见的编程技术。本文将详细介绍如何在 C/C++ 中将多维数组指针作为函数参数传递,並对相关知识点进行详细解释。 多维...

    【JavaScript源代码】vue 中 get delete 传递数组参数方法.docx

    为了解决这个问题,我们可以利用`qs`这个插件来序列化数组参数,使其以期望的形式传递。 `qs`(Query String)是一个Node.js库,用于解析和序列化URL查询字符串。在Vue中,特别是当我们使用像axios这样的HTTP客户端...

    C语言教学中函数参数传递问题探讨.pdf

    为了解决这一问题,文章明确了传递方式和数据类型是函数参数传递中的两个基本概念。传递方式指的是参数传递到函数内部的方式,而数据类型则是指参数所代表的数据种类。 在深入分析中,文章通过举例分析了三种情况:...

    C语言编程技术实践2020版 数组作为函数参数传递教学单元设计.doc

    2. **数组名称作函数实参**:C语言中,数组名实际上是对数组首地址的引用,因此,当数组名作为参数传递时,传递的是数组的首地址,而不是数组的复制。这意味着函数可以访问整个数组,但不能改变数组的大小。例如: ...

    c语言习题 (数组).zip

    这个“c语言习题(数组).zip”文件很可能包含了一系列关于C语言数组的练习题目,帮助学习者深化对数组的理解和应用。 数组在C语言中的基本概念是这样的:数组是一个同类型的元素序列,它们在内存中是连续存储的。...

    指针进阶之数组参数和指针参数

    今天我们将深入探讨指针在数组参数和指针参数中的应用。 一、回顾 在学习指针之前,我们需要回顾一下基本概念。指针是一个变量,它存储的是内存地址。我们可以通过指针来访问和操作内存中的数据。在C语言中,指针...

Global site tag (gtag.js) - Google Analytics