C语言 标识符的作用域
生活随笔
收集整理的這篇文章主要介紹了
C语言 标识符的作用域
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h> int x = 20;void print_x(void){puts("------print_x函數調用文件作用域------"); printf("x = %d\n", x);
}int main(void){int i;int x = 88;print_x();puts("-------main函數調用塊作用域-----------"); printf("x = %d\n", x);puts("---for循環體打印for循環體內部塊作用域---"); for (i = 0; i < 5; i++){int x = i * 100;printf("x = %d\n", x);}puts("---------main函數調用塊作用域-----------"); printf("x = %d\n", x);
}
運行結果:
由于print_x函數內沒有定義變量,所以會引入 函數體外定義的變量 x = 20;
當在main函數內部打印x變量時,會在內部尋找是否定義了x 變量 如果有,則會就近原則打印main 內部定義的變量,如果沒有 則會打印 main 函數體外面的變量。
for循環會打印循環體中的變量,當for語句的循環結束之后,該變量 x 的名稱就會失效。
所以在調用最后一個printf函數時,x值顯示的是mian函數內定義 x = 88;
運行結果:
總結:
如果 兩個同名變量分別擁有文件作用域和塊作用域,那么只有擁有塊作用域的變量是 “可見” 的,而擁有文件作用域的變量會被 “隱藏” 起來。
當同名變量都被賦予了塊作用域的時候,內層的變量是“可見”的,而外層的變量會被 “隱藏” 起來。
函數會就近原則,先找函數體內是否存在定義的變量,如果沒有,則會尋找函數體外層的變量,如果都沒有,程序會報錯。
程序是從上往下逐條執行的
如果在引用變量的下方定義了變量,沒有在上方定義變量,則不會調用函數體下方的變量。
總結
以上是生活随笔為你收集整理的C语言 标识符的作用域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言显示字符型和整型数据类型的表示范围
- 下一篇: C++ 加载Live2D官方Cubism