一、C++ 作用域
1、下列程式将會輸出什麼?
int i = 50,sum = 0;
for(int i = 0;i <= 10; i++)
sum += i;
std::cout << i << " " << sum << std::endl;
咋一看很簡單,馬上給出答案i = 10,sum = 45;也許是馬虎所得,主要還是考慮問題不全面,正确答案i = 50,在for中定義的i 作用域隻在for循環體中,出了這個作用域,定義的i也就不存在了,輸出的i是全局定義的值。
2、下列程式合法嗎?
int sum = 0;
for(int i = 0;i <= 10;i++)
sum += i;
std::cout << "Sum from 0 to " << i << " is " << sum << std::endl;
答案不合法,i值不具有全局作用域,作用域在for循環中,隻在for循環中可以使用
3、多個檔案中使用const變量,檔案1 file_a.cpp extern const int a = 10;在檔案2 中使用a 變量file_b.cpp extern int a;在定義時需要加上extern修飾符才可以在别的檔案中使用這個常量。
4、定義const 變量(常量)必須初始化,const int a = 10;
5、在實際程式中引用主要用作函數的形式參數。
6、非const 引用不能綁定右值,如:int &a = 10;錯誤;
的網上
兄弟的身世
咋一看
咋一看