1. 程式人生 > >c++引用和指針

c++引用和指針

如果 必須 字面值 情況 得出 ble 其中 一起 變量名

引用:
將聲明符寫成&d的形式來定義引用類型,其中d是變量名。
1、引用並非對象,它只是為一個已存在的對象起的別名。
2、引用必須初始化,一旦初始化完成,引用將和它的初始值一直綁定在一起。
3、引用只能綁定在對象上,而不能與字面值或某個表達式的計算結果綁定在一起。
4、通常情況下,引用的類型要和與之綁定的對象嚴格匹配。
例外:
常量引用:
double x = 1.2;
const int &p = x;
初始化對常量的引用時允許用任意表達式作為初始值,只要該表達式的結果能轉換成引用的類型即可。


指針:
將聲明符寫成*d的形式來定義引用類型,其中d是變量名。
1、指針是一個對象,無須在定義時賦初值;在塊級作用域內定義的指針如果沒有被初始化,也將擁有一個不確定的值。
2、通常情況下,指針的類型要和他所指向的對象嚴格匹配。
例外:
指向常量的指針:不能用於改變其所指對象的值。
int x = 1.2;
const int *p = &x;
允許一個指向常量的指針指向一個非常量對象。
3、如果指針指向了一個對象,則允許使用解引用符(*)來訪問該對象;
對指針解引用會得出所指的對象,因此如果給解引用的結果賦值,也就是給所指對象賦值。


const指針:
即常量指針,必須初始化,而且一旦初始化完成,則它的值(也就是存放在指針中的那個地址)就不能改變了。
把*放在const關鍵字之前用以說明指針是一個常量。
int x = 1;
int * const p = &x; // p將一直指向x

c++引用和指針