c++程式中,每個名字都與唯一的實體(比如變數、函式和型別等)相關聯.儘管有這樣的要求,還是可以在程式中多次使用同乙個名字,只要它用在不同的上下文中,且通過這些上下文可以區分改名字的不同意義.用來區分名字的不同意義的上下文稱為作用域(scope).作用域是程式的一段區域.乙個名稱可以和不同作用域中的不同實體相關聯.
大多數作用域都是用花括號來界定的.一般來說,名字從其宣告點開始直到其宣告所在的作用域結束處都是可見的.
下面看一段程式:
#include
int main()
j的值是多少?
答案是100,區域性變數i遮蔽了全域性變數i,
int i=100,sum=0;
for(int i=0;i!=10;++i)
sum+=i;
cout《答案是 100 45
因為i=100是全域性變數,而i=0是for語句裡面的變數,作用域僅侷限在語句內,輸出的100是之前
int sum=0;
for(int i=0;i!=10;++i)
sum+=i;
cout<<"sum from 0 to "《程式是否合法?
答案是不合法,雖然編譯沒有錯誤,但是這裡輸出的時候使用了只具有語句作用域的i,i只能在for語句裡面使用,它僅具有語句作用域,所以上面的程式是不合法的.
名字的作用域
include include std string s1 xiao cui s1的作用域為整個檔案為全域性作用域,int a 3 void test int main 裡邊的範圍為區域性作用於,std string s2 ai ni xiao cui s2的作用域為 裡邊的範圍為區域性作用域,不能...
名字的作用域 scope
c 程式中,每個名字都與唯一的實體 比如變數 函式和型別等 相關聯。儘管有這樣的要求,還是可以在程式中多次使用同乙個名字,只要它用在不同的上下文中,且通過這些上下文可以區分該名字的不同意義。用來區分名字的不同意義的上下文稱為作用域 scope 作用域是程式的一段區域。乙個名稱可以和不同作用域中的不同...
C 名字的作用域
不論是在程式的什麼位置,使用的名字都會指向乙個特定的實體 變數 函式 型別等。然而,同乙個名字如果出現在程式的不同位置,也可指向的是不同實體。作用域 scope 是程式的一部分,在其中名字有特定的含義。c 語言中大多數作用域都是以花括號分隔。同乙個名字在不同的作用域可能指向不同的實體。名字的有效區域...