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