点击上方蓝字关注我,了解更多咨询
C中通常会声明很多变量,变量有不同的作用域。如果出现同名变量,作用域怎么确定?这里先看结论:块中的变量作用域不同,内层块会隐藏外层块中的定义。但离开内层块后,外层块变量的作用域又回到了原来的作用域。通过一个示例来演示:
(1)声明了变量x = 30,此时打印结果:x在外部的值:34, 地址:000000b133dffd3c。
(2)声明新的变量x=77,但此时新的变量在一对花括号内,此时变量x会隐藏原始的x=30。打印出新的值:x在内部的值:77, 地址:00000036a9fffa08
(3)编写while循环,在while循环中声明变量x。先来看打印结果
x循环中的值:101,地址:00000036a9fffa04
x循环中的值:101,地址:00000036a9fffa04
x循环中的值:101,地址:00000036a9fffa04
通过结果可以知道,循环内打印使用的是新声明的变量x=100。但注意循环条件中使用的变量是原始的变量x=30(总共循环了3次)。
(4)最后打印变量,此时变量为原始的变量,只是在while循环条件中递增了,所有打印为:x在外部的值:34, 地址:000000b133dffd3c。
END
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
戳“阅读原文”我们一起进步