C语言题目,做不出来了!求大神出救

如题所述

x是个普通的局部变量,不管调用多少次increment,x的值都不会变,因此总是输出1。追问

结果是1 11

追答

没错,难道和我说的不一致吗?

追问

能给个过程吗?

追答

我上面的解释就是过程。调用三次incretment就输出三个1。

追问

能帮忙看一下吗?明天早上要用,可是我写的有兼容性问题!所以没办法了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-14

答案应该是:

1        1        1

 

在这个程序中,increment函数被调用了三次。而每次调用该函数时只是 把变量 x 的值加一。对于初学者需要注意的是,变量 x 是一个局部变量,其作用域只在 increment函数内部。在主函数main中不管调用多少次increment函数,也只不过重复调用而已,所以其中 x 的值都是一样的。运行结果如图所示:

追问

答案为什么是1 11是不是错了?

追答

输出三个1是没有错的。因为x只是一个局部变量,并且不是静态变量。如果x是以static声明的静态变量,那么x的值在每次函数调用时都会被保存下来,这种情况如下图所示:

追问

非常感谢

过两天就期末考了!所以备考中

能帮忙看一下吗?明天早上要用,可是我写的有兼容性问题!所以没办法了

第2个回答  2016-01-14
输出1 1 1啊追答

每次调用increment函数都输出一个1啊

追问

是1 11

追答

??

追问

能帮忙看一下吗?明天早上要用,可是我写的有兼容性问题!所以没办法了

相似回答