void+函数的使用方法?

举个例子
#include<int a[ ]>
void sum(int a[ ])
{ a[0]=a[-1]+a[1]; }
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
sum(&a[2]);
printf("%d\n",a[2]);
}
void 不是指空返回值的意义吗,那么这段程序的输出应该是3啊
为什么运算的结果会返回为 2+4=6?

守着星空守着你
浏览 481回答 1
1回答

哆啦的时光机

因为它的参数是一个数组,也就是说是一个指针当你把a[2]的地址传进去时,在里面的操作其实和在外面操作没有区别,都是操作你传进去的数组(具体你去看看函数参数的传值与传地址的差别,就明白了)。上面你传的是下标为2的元素的地址,相当于从3那个位置开始操作,所以,a[-1]=2,a[1]=4; 所以就得到那个结果了。另外,想提醒你一点,最好不要a[-1]这种整,假如你传的不是a[2]的地址,而是a[0]的地址就越界了,你不信你试试。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript