为什么结果是10 28 啊!
的有关信息介绍如下:首先b你是在main之前声明的,所以他是个全局变量。主函数和fun函数中的b变量都是这个b变量,fun函数对b的修改也是全局的。 b=*k+b 在这个地方b已经变成5了。运行fun(&a[i])+b;则等于10了 后面的以此类推。有一种情况是这样的
int fun(int *k)
{
int b;//这里的b就是局部变量,对b的修改不延伸到外面的b
b=*k+b;return(b);
}
执行第一遍时,b=a+2=3+2=5,执行b=fun(&a)+b,因为b已经为5了,所以执行这里时,b=5+5=10
执行第二遍时,b=a+10=4+10=14,最后b=14+14=28。