1.
指標是乙個變數,乙個實體,開闢空間,存放指向空間的位址。
引用是乙個別名,不開闢空間。
int a=10;
int*p=&a;
int &b=a;
2.
引用–沒有空引用,必須初始化
指標–可以等於null
int
*p=null;
3.
引用–不分等級,沒有所謂的二級引用
指標–有二級,**,等多級指標
int *p;
int * *p;
int * * *p
… 4 .
指標初始化後可以改變
引用初始化後不能改變
int a=10;
int b=12;
int*p=null;
p=&a;
p=&b;
int &b=a;==>int
*const b=&a;
5.
sizeof(引用)是被引用物件的大小;
sizeof(指標)恆等於4
int a=10;
int *p=&a;
int &b=a;
sizeof(p)=4;
sizeof(b)==sizeof(a)=4
6. 指標作為函式形參時,傳的是位址
引用作為函式形參時,傳的是實參本身
void swap1(int
*a, int
*b)void swap2(int &a, int &b)
void main()
反彙編
彙編下,表達相同。
7. 有const 指標
沒有const 引用
const int *p
int *const p
const int * const p
8. 指標++ 加到是所指向的物件的位元組數
引用++含義不同
void main()
指標引用和引用指標的區別
c 在傳參的過程中,指標 和指標引用 是有區別的。雖然,我們往往可以通過傳指標然後通過間址訪問來修改指標所指向物件的值,同樣,通過引用也可以直接修改物件的值。但是,當傳指標的時候有乙個問題,就是,我們雖然可以通過指標來修改指標所指向物件的值,但是我們沒有不能直接修改指標的內容 也就是指標變數存放的位...
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...