第1个回答 2010-08-08
这是全局变量和局部变量还有静态变量的区别。inta=5是全局变量,当在main函数里调用fun(c)的时候这时候用首先因为静态变量的a=10所以10+20=30输出30。然后就是a+=C++这时候用的是全局变量a=5,所以20+5=25。所以输出为30,25。
第2个回答 2010-08-08
int a=5;
这个定义的是全局变量
如果下面语句没有定义的话,a默认是5
第3个回答 2010-08-08
1. 开头的 a = 5;声明一个全局变量
2. 形参和实参同名没有关系
3. 有一个局部的static变量会屏蔽全局变量,所以输出为30
4. 函数采用的传值方式,所以c的值并没有改变,所以后面又用的全局变量a的值,这样输出为25.
还是自己多看看书吧。码字够累的。。。。
第4个回答 2010-08-08
最前面的那个a是全局变量,fun函数中定义的a只在fun函数中有效,main函数中用的a是全局变量a。
第1个输出是fun函数中的 a=10 a+=b++相当于a=a+b,b=b+1,此时b的值为主程序中传递过来的c的值,所以a=a+b=10+20=30,第一个输出是30。
第2个输出是主程序中的 a+=c++相当于a=a+c,c=c+1,此时a用的是全局变量(就是开头定义的那个int a=5),所以a=a+c=5+20=25,第二个输出是25
第5个回答 2010-08-08
最开头那个A =5是申明A为全局变量, 然后个初值为5;
main里面的A+=C++
可以看作a=a+c;
c++;
所以输出为25;
fun函数里面的
应为定义了一个
static int a=10;
所以外面的A作用域不在FUN函数了
而里面的a+=b++;
这和我上面分析的一样