
关于C语言中数组作为参数传递的疑惑~~
intarray[]={1,2,3}voida(intarray[2]){}voidb(intarray[]){}voidc(int(&array)[2]){}以上都是以...
int array[]={1,2,3}
void a(int array[2]){}
void b(int array[]){}
void c(int (&array)[2]){}
以上都是以数组作为参数传递给函数a,b,c的。想了解以上三者的区别,希望各位老大详细解释,谢谢~~~ 展开
void a(int array[2]){}
void b(int array[]){}
void c(int (&array)[2]){}
以上都是以数组作为参数传递给函数a,b,c的。想了解以上三者的区别,希望各位老大详细解释,谢谢~~~ 展开
21个回答
展开全部
1 a函数调用时将3这个数值传递
2 b函数调用时将数组元素的首地址传递,接下来依次操作
3 c函数调用时将3的地址传递
2 b函数调用时将数组元素的首地址传递,接下来依次操作
3 c函数调用时将3的地址传递
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也是几年前学的C!一直不用了!不知道解释的合理不!
首先int array[]={1,2,3}定义了一个数组!数组元素的个数是空的[],系统就根据后面的{1,2,3}将数组大小定义为3个!其实这句语句和int array[2]={1,2,3}是一样的!!
“void a(int array[2]){}”代表array中第3个元素传给a,也就是3
void b(int array[]){} 应该是代表将整个数组传给B
void c(int (&array)[2]){}应该的先做”&array[2〕”的出的结果是0或1,然后在传给C
首先int array[]={1,2,3}定义了一个数组!数组元素的个数是空的[],系统就根据后面的{1,2,3}将数组大小定义为3个!其实这句语句和int array[2]={1,2,3}是一样的!!
“void a(int array[2]){}”代表array中第3个元素传给a,也就是3
void b(int array[]){} 应该是代表将整个数组传给B
void c(int (&array)[2]){}应该的先做”&array[2〕”的出的结果是0或1,然后在传给C
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int array[]={1,2,3}
void a(int array[2]);
void b(int array[]);
声明必须这样写。
前两个完全一样,还可以写成void d(int const* array);
这也是一样的,数组在c中被作为const pointer传递.
void c(int (&array)[2]);这个有错误,不能这样写。
不想写了,不过如上乱写,还不如不写。
void a(int array[2]);
void b(int array[]);
声明必须这样写。
前两个完全一样,还可以写成void d(int const* array);
这也是一样的,数组在c中被作为const pointer传递.
void c(int (&array)[2]);这个有错误,不能这样写。
不想写了,不过如上乱写,还不如不写。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int array1[]={1,2,3},array2[]={1,2};
void a(int array[2]){}
void b(int array[]){}
void c(int (&array)[2]){}
void d(int *array){}
a,b,d完全等价,因为“作为函数参数的数组名”等同于指针的。
而c函数中,传入的数组的元素个数,必须和函数中定义的一致。也就是说,c(array1);是错的。c(array2);是对的。
void a(int array[2]){}
void b(int array[]){}
void c(int (&array)[2]){}
void d(int *array){}
a,b,d完全等价,因为“作为函数参数的数组名”等同于指针的。
而c函数中,传入的数组的元素个数,必须和函数中定义的一致。也就是说,c(array1);是错的。c(array2);是对的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void a(int array[2]){}
void b(int array[]){}
void c(int (&array)[2]){}
是原型声明。
你打算怎样调用?
void b(int array[]){}
void c(int (&array)[2]){}
是原型声明。
你打算怎样调用?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询