请问这个c程序题的结果是什么呀,全局变量也可以累加吗
答案是11,13,15a是全局变量,不应该每次使用都是a=1吗,这样算出来应该是11,12,13啊但实际每次a都加一,这是为什么呀...
答案是11,13,15a是全局变量,不应该每次使用都是a=1吗,这样算出来应该是11,12,13啊但实际每次a都加一,这是为什么呀
展开
展开全部
a是全局变量,但是局部变量里也有a,同名的时候,以局部变量为准。
所以main的a = 4;func里的a = 1;
main 里的a没有变化,所以每次传递过去的d都是4;
func里的a是全局变量,每次执行a++;都会增1;
然后c是静态变量,有全局变量的效果,初值只赋值一次,也就是每次进入子函数都会+1;
b是局部变量,每次进入都是1;
a+b+c+d
第一次return 的数是,2+2+2+5 =11;
第二次return的数是,3+2+3+5 =13;
第三次return的数是,4+2+4+5 =15;
所以main的a = 4;func里的a = 1;
main 里的a没有变化,所以每次传递过去的d都是4;
func里的a是全局变量,每次执行a++;都会增1;
然后c是静态变量,有全局变量的效果,初值只赋值一次,也就是每次进入子函数都会+1;
b是局部变量,每次进入都是1;
a+b+c+d
第一次return 的数是,2+2+2+5 =11;
第二次return的数是,3+2+3+5 =13;
第三次return的数是,4+2+4+5 =15;
更多追问追答
追问
为什么d的值会是5,6,7呢不应该一直都是5吗
追答
我搞错啦,已经改过来了,每次进去,a和c都会比之前大1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询