C语言 标识符的作用域
運(yùn)行結(jié)果:
由于print_x函數(shù)內(nèi)沒有定義變量,所以會(huì)引入 函數(shù)體外定義的變量 x = 20;
當(dāng)在main函數(shù)內(nèi)部打印x變量時(shí),會(huì)在內(nèi)部尋找是否定義了x 變量 如果有,則會(huì)就近原則打印main 內(nèi)部定義的變量,如果沒有 則會(huì)打印 main 函數(shù)體外面的變量。
for循環(huán)會(huì)打印循環(huán)體中的變量,當(dāng)for語(yǔ)句的循環(huán)結(jié)束之后,該變量 x 的名稱就會(huì)失效。
所以在調(diào)用最后一個(gè)printf函數(shù)時(shí),x值顯示的是mian函數(shù)內(nèi)定義 x = 88;
運(yùn)行結(jié)果:
總結(jié):
如果 兩個(gè)同名變量分別擁有文件作用域和塊作用域,那么只有擁有塊作用域的變量是 “可見” 的,而擁有文件作用域的變量會(huì)被 “隱藏” 起來(lái)。
當(dāng)同名變量都被賦予了塊作用域的時(shí)候,內(nèi)層的變量是“可見”的,而外層的變量會(huì)被 “隱藏” 起來(lái)。
函數(shù)會(huì)就近原則,先找函數(shù)體內(nèi)是否存在定義的變量,如果沒有,則會(huì)尋找函數(shù)體外層的變量,如果都沒有,程序會(huì)報(bào)錯(cuò)。
程序是從上往下逐條執(zhí)行的
如果在引用變量的下方定義了變量,沒有在上方定義變量,則不會(huì)調(diào)用函數(shù)體下方的變量。
總結(jié)
以上是生活随笔為你收集整理的C语言 标识符的作用域的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C语言显示字符型和整型数据类型的表示范围
- 下一篇: Qt Creator创建项目