您的位置:首页 > 其它

数组作为函数参数的传递

2012-02-28 19:17 309 查看
 
#include <stdio.h>

void main()

{

 int data[] = {1,2,3,4,5,6,7,8,9,10};


 int size = sizeof(data)/sizeof(data[0]);//(********)求数组中元素的个数 

 


printf("%d\n",sizeof(data)); //此处求的是数组的大小

printf("%d\n",addArray(data,size));          //疑问:addArray函数的使用在声明之前?为什么还会编译成功?


 

 //判断被调函数是否改变数组的值

 printf("%d\n",data[1]); //确实改变了,看来只要传递的是指针,就能改变内存的值

}


 

 

//数组元素求和方法一
int addArray(int array[],int n)

{

 int sum = 0;

 int i;

 printf("%d\n",sizeof(array));//此处求的是int型的大小,说明array是一个指向整型的指针,可见数组名和指针不同(用sizeof看出)


 for(i = 0 ; i < n ; i++)

 {

  sum += array[i];

 }


 //既然数组作为参数传递是指针,那么在被调函数中修改数组,就会改变原来数组的值

 array[1] = 9;


 return sum;

}


 

 

//数组元素求和方法二

 


int addArray(int *array,int n) //直接定义指针

{

 int sum = 0;

 int i;

 for(i=0;i<n;i++)

 {

  sum += *array++;         //(*********)

 }

 return sum;

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  include ini