求问,这个f1,为啥调用的是全局变量,且return i后对
c4droid吧
全部回复
仅看楼主
level 8
快乐的奥摩♀
楼主
求问,这个f1,为啥调用的是全局变量,且return i后对内部没啥影响?图1是测试各位置的i的值,e c处都是3,但g处是5
2018年01月05日 08点01分
1
level 9
doublebit
要先明白变量的"作用域".
当一个程序中出现了局部变量与全局变量同名的情况时,在该函数或复合语句块中,全局变量不起作用,而由局部变量起作用.
2018年01月05日 09点01分
2
快乐的奥摩♀
那个f1调用的就是全局变量啊,不是局部变量,因为g处i的值是5
2018年01月05日 09点01分
doublebit
回复 柳色新🌿 :你的局部变量是定义在main函数里的,对f1没影响。所以f1输出的是全局变量的i。
2018年01月05日 09点01分
快乐的奥摩♀
@doublebit
f1不也在main函数里吗?
2018年01月05日 09点01分
doublebit
@doublebit
当你在主函数调用一个自定义函数时,是先暂停执行main函数,转而执行相应的函数【即f1()】,函数执行完后再继续执行main函数。 而并非是执行f1时,把f1那行替换为函数体代码。
2018年01月05日 09点01分
1