int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[5],*q=p+2;

如题所述

你的程序的确很绕啊。但是在我想了一下换是明白了。:
你只要把你每次改变b记下来就明白了
我给你说10吧
28也是一样的
首先b
=
2;
之后fun函数传过去了a[2]的地址就是3
,经过运算函数返回了b的值是5
,在接着就是
b=fun(&a[i])+b;这句
最后b就被改写成了10了
最后输出就是10
第二次循环b的值是10
不是2
这个关键的
那28也就是这个道理了。明白了吧!!
这里我就是说一下为什么第一次循环是10
因为你的程序只是运行了一次,所以b的初始化只经过一次。要想在变成2,就要重新运行程序,这时候b在进行初始化,变成2.好了就这样了!!!希望对你有用!
希望对你能有所帮助。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜