你好,按照您的说法,modifyvalue(),changevalue(int x)是针对全局变量的,这样的话在第一次打印x时,首先changvalue()操作后,x的值变为11,然后经过一次自增操作,变为了12,而后调用modifyvalue函数对其进行变动,这样的话结果应该不是12啊,modifyvalue函数在整个程序运行过程中有没有起到作用呢?
新手上路,打扰大牛了!!
http://zhidao.baidu.com/link?url=ffn5VtbkeCB4Flj-kAwcsY8xY8ZD7aMgyT8nluOjR1NvRTUzNuMD1wmcwSQD_-DzTKK9YSDAxikqwWLitDy_qK,
对原问题的回答,原文中lw2078的回答基本正确,这主要是一个变量作用域的问题。
为讨论方便起见,源程序抄录于下:(注释为本人所加解释)
int x; //全局变量,不妨记为x1,因全局变量是静态变量,所以默认初始值为0理解本问题,以下几点要注意:
1. 调用changevalue(x)、modifyvalue()两函数时,没有使用返回值,即相当于两函数的return没有直接起作用。
2. 定义changevalue(x)函数时,参数是值传送,在changevalue()内x的变化不会影响到main()中的x。
3.要注意变量的作用域,尤其是同名变量的作用域。