关于C语言中数组作为参数传递的疑惑~~

int array[]={1,2,3}
void a(int array[2]){}
void b(int array[]){}
void c(int (&array)[2]){}
以上都是以数组作为参数传递给函数a,b,c的。想了解以上三者的区别,希望各位老大详细解释,谢谢~~~

第1个回答  2007-08-17
我看了半天,觉得有问题,首先int array〔〕={1,2,3}是指定义一个数组array 这个数组有三个数分别为1,2,3.array〔0〕=1;array=〔1〕=2;array〔2〕=3;void a(int array[2]){} 是指定义一个函数a,没有返回值;而括号内是指参数是array[2],且是整型,但是前面是void 说明无返回值,那么函数a就不可能得到值,起的作用相当于一个计算过程,本身是得不到值的.
第2个回答  2007-08-17
问题:
int array[]={1,2,3}
void a(int array[2]){}
void b(int array[]){}
void c(int (&array)[2]){}

参数传递是一样的。
参数表中[2],这个2是可有可无的,即这个是没有区别的。
故a与b一样。
c中是C++中的引用。这是唯一的不同点。
第3个回答  2007-08-17
★★★★我来告诉你:
第一个是在某个函数(如主函数main(){})里定义一个整型数组{1,2,3},
而下面三个都是定义函数,
void a(int array[2]){} 表示将数组array的第三个变量3交给函数a(){}去处理,也可以说函数a(){}调用数组array的第三个变量3作为参数去执行;
void b(int array[]){} 表示将数组array的地址交给函数b(){}去处理,也可以说函数b(){}调用数组array的的地址作为参数去执行;
void c(int (&array)[2]){} 表示将数组array的第三个指针交给函数b(){}去处理,也可以说函数b(){}调用数组array的的第三个指针作为参数去执行;

void表示不返回任何值给函数
第4个回答  2007-08-17
三个的函数原型应该是:
//传递单个值
void a(int Num){}

//传递整个数组
void b(int Num[]){}

//传递一个地址(也差不多等于一个值,定义方法不一样而已)
void c(*Num){}
第5个回答  2007-08-17
传递单个值
void a(int Num){}

//传递整个数组
void b(int Num[]){}

//传递一个地址(也差不多等于一个值,定义方法不一样而已)
void c(*Num){}

void a(int array[2]){} 表示将数组array的第三个变量3交给函数a(){}去处理,也可以说函数a(){}调用数组array的第三个变量3作为参数去执行;
void b(int array[]){} 表示将数组array的地址交给函数b(){}去处理,也可以说函数b(){}调用数组array的的地址作为参数去执行;
void c(int (&array)[2]){} 表示将数组array的第三个指针交给函数b(){}去处理,也可以说函数b(){}调用数组array的的第三个指针作为参数去执行;
相似回答