const 限定符
1、const限定符可以將一個(gè)對象轉(zhuǎn)換成一個(gè)常量,例如 const int a=1;此時(shí),任何修改 a 的嘗試都會導(dǎo)致編譯錯(cuò)誤。
2、const對象默認(rèn)為文件的局部變量。
???在全局作用域里定義非const變量時(shí),它在整個(gè)程序中都可以訪問。我們看而已把一個(gè)非const變量定義在一個(gè)文件中,假設(shè)已經(jīng)做了合適的生命,就可在另外的文件中使用這個(gè)變量。
???例如:
??
//file_1.cpp
int?a=1;

...

//file_2.cpp
extern?int?a;

//ok
與其他變量不同,除非特別說明,在全局作用域生命的const變量是定義該對象的文件的局部變量,此變量只存在于那個(gè)文件中,不能被其他文件訪問。例如:
//file_1.cpp
const
int?a=1;


//file_2.cpp
extern?int?a;
?
//error
不過,通過指定const變量為extern,就可以在整個(gè)程序中訪問const對象,例如:
//file_1.cpp
extern?const?int?a=1;

//file_2.cpp
extern?const?int?a;

//ok


3.我們知道,頭文件中不能定義變量,防止被多個(gè)文件引用,從而多次定義變量。但是const 變量可以在頭文件中定義,因?yàn)樗诔绦虻奈募邢喈?dāng)于定義了局部變量。

引用 &
引用是一種復(fù)合類型,通過在變量名前面添加&符號來定義。引用必須用與該引用同類型的對象初始化。
int?a=1;
int?&b=a;//ok
int?&c;//error,未初始化
int?&d=1;//error,所引用的必須為對象

引用是別名,引用只是它綁定對象的另一名字,作用在引用上的所有操作事實(shí)上都是作用在該引用的綁定的對象上。
b+=2;則a+=2;

const 引用
const引用是指向const對象的引用。
const?int?a=1;
const?int?&b=a;//ok,a和b都不可修改
int?&c=a;//error
上例表明,試圖通過修改c來修改一個(gè)const變量a是危險(xiǎn)的,是不允許的。