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

本文通过两个例题详细解析了全局变量与局部变量的作用域及优先级问题,包括如何影响函数内的变量交换和打印结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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。

变种:

 此时结果呢?

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CR0712

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值