用例题来说全局变量与局部变量

1.例题1

 先看看这道题,猜猜看,编译结果会是什么?

你猜对了吗。这里说说我的理解:

swap函数中的x y是使用的全局变量所定义的x y,而我们知道,全局变量的作用域不受函数的影响,会一直存在。而主函数所使用的x y是局部变量x y,局部变量出了定义变量的函数之后,就会销毁,所以说这道题目简化一下就是这样:

 变种1:

 这里提一句:当全局变量与局部变量撞名时,选择局部变量优先原则(就近)。主函数中打印的是全局变量,而swap函数交换的时局部变量。

变种2:

 这里的主函数和swap函数中的x y皆是全局变量中定义的x y。

而全局变量不受函数的结束而结束,在函数中改变全局变量,主调函数中可以看到改变之后的结果

2. 例题2:

 再看看这道题目,编译结果会是什么呢?这道题是不是与例题1的变种2有的像呢。

 相信聪明的你已经猜到结果了。

这里的主函数和prt函数中的i是一样,都是全局变量的 i。

变种:

 此时结果呢?

我就不说咯,留给聪明的你们啦!

猜你喜欢

转载自blog.csdn.net/C_Rio/article/details/128819928
今日推荐