C++(1)引用
引用
引用 為對象起另外一個名字,通過將聲明符寫成 &d,其中d是聲明的變量名。一旦初始化完成,引用將和起初始值綁定在一起,無法再綁定到另一個對象,因此引用必須初始化。
引用就是別名,初始化以后,對引用的所有操作,都作用于與其綁定的對象上面。引用只能綁定在對象上,不能和字面值和某個表達式的結果綁定在一起。
指針
指針同樣用于對對象的間接訪問,和引用的不同在于指針本身也是一個對象,其次指針在定義時無需賦值,如果指針沒被初始化,將是一個不確定的值。
空指針不指向任何對象,生成空指針
int *p =0; int * p1= nullptr int *p2=NULLvoid* 指針可以用來接收任何對象,但是我們不能直接操作void* 指針所指向的對象,因為我們不知道這個對象是什么
const 限定符
被const修飾的變量,在被定義后就不能被改變。默認狀態下,const對象只在文件內有效,我們可以加上extern關鍵字使得該常量被多個文件共享。
可以將引用綁定在const對象上,但是這種引用不能被用作修改它所綁定的對象。
const int a=3; const int &b=a;要想存放指向常量的地址,只能使用指向常量的指針。
const double o=3; const double *p=&o;指針也是一個對象,因此我們也能使用const去修飾指針,把*放在const前面用以說明指針本身的值也是常量
const double o=3; const double *const p=&o;- 頂層const:指針本身是個常量
- 底層const:指針指向的對象是一個常量
常量表達式是指值不會改變并且在編譯的過程就能得到計算結果的表達式。能夠參與常量表達式運算的只有算術類型、指針和引用。constexpr修飾指針是只對指針本身有效。
總結
- 上一篇: 575. 分糖果
- 下一篇: 做梦梦到自己的奶奶怎么回事