2018-01-15 建立人:ruo_xiao
.com
程式中該識別符號可以使用的區域。
例如:函式內的區域性變數的作用域僅限於函式體本身。
說明了兩點:
(1)其他的函式無法通過該變數名訪問它們。
(2)只要分屬不同的作用域,不同的變數可以起相同的名字,並且可以位於相同的位址。
檔案作用域、函式作用域、**塊作用域和原型作用域。
識別符號宣告的位置決定了其作用域。
1、位於一對花括號之間的所有語句稱為乙個**塊。
2、任何在**塊開始的位置宣告的識別符號都具有**塊作用域,表示它們可以被這個**塊中所有語句訪問。
3、注意:在巢狀模式下,若內層和外層具有相同的變數名,則內層變數隱藏外層變數。
4、形參的作用域變遷歷史:
(1)k&r c
形參的作用域開始在形參的宣告處,位於函式體之外。若函式體內部宣告了名字和形參名相同的區域性變數,則它們將隱藏形參。
(2)ansi c
扼制了k&r c的錯誤,它把形參的作用域設定到了整個函式體,故區域性變數和形參將無法同名。
栗子:
int add(int a,int b)
任何在所有**塊之外宣告的識別符號都具有檔案作用域。
表示這些識別符號從它們的宣告之處直到它所在檔案的原始檔結尾處都是可以訪問的。
注意:在標頭檔案中寫的函式宣告和變數宣告,其實都是在**塊之外,故都具有檔案作用域。由於#include指令,故這些宣告的作用域不侷限於標頭檔案中。
只適用於在函式原型中宣告的引數名。
原型中,引數名並非必須,也可以與函式定義中的引數名不一樣。但禁止同一函式原型中用相同的變數名。
只適用於語句標籤,語句標籤用於goto語句。
實際意義如下:乙個函式中所有的語句標籤必須唯一。
C 識別符號的作用域
轉 包括 區域性作用域 全域性作用域 檔案作用域 函式作用域 函式原型作用域 名空間作用域 類作用域 注意 潛在作用域,也就是同名變數的作用域問題。1.區域性作用域 指在函式定義或者復合語句中,從識別符號的定義點開始到函式或者復合語句結束之間的程式段。在同乙個區域性作用域內不能出現相同名字的兩個區域...
識別符號的作用域
塊作用域 區域性作用域 檔案作用域 全域性作用域 函式原型作用域 函式作用域 類作用域 塊作用域 塊是函式中一對花括號 包括函式定義所使用的花括號 所括起的一段區域。在塊內說明的識別符號具有塊作用域,它開始於識別符號被說明的地方,並在標誌該塊結束的右花括號處結束。如果乙個塊內有乙個巢狀塊,並且該塊內...
C語言中使用者識別符號的作用域和儲存類
一 選擇題 1 有以下程式 int a 2 int f int n else return t a main 程式執行後的輸出結果是 a 26 b 28 c 29 d 24 2 有以下程式 int a 2 int f int a main s f a printf d n s 執行後輸出結果是 a ...