一、引用(左值引用)
引用時為物件起了另外乙個名字。形式:&d是對變數d的引用。(d是變數名)
如:int ival=1024;
int &refval=ival; //refvalu指向ival(是ival的另乙個名字)
int &refval2; //報錯:引用必須被初始化;
引用之後,引用名和變數名作用一樣,可用來賦值及其他操作,只是用兩個不同的名字。
二、指標
存放物件的位址,也是乙個物件,允許賦值和拷貝。
形式:*d是指向d的指標。(d是變數)
指標存放物件的位址,要獲取位址,要用取位址符(&)。
如:int ival=1024;
int *p=&ival;
double dval;
double *pd=&dval; //pd為dval的位址。
double *pd2=pd; //正確:pd2為指向dval的指標
利用指標訪問物件
指標指向乙個物件,用「解引用符」(*)來訪問物件。
如:int ival=1024;
int *p=&ival;
(宣告後賦值int *p; p=&ival;)
cout<<*p;
給接引用的結果賦值,也就是對指標指向的物件賦值。(即使用*p等同於使用ival)
如:*p=0;
cout<<*p; //輸出0
*和&多重含義
int i=1024;
int &r=i;//&引用
int *p; //*指標
p=&i; //&取位址符
*p=i; //*解引用符
iny &r2=*p;///&宣告的一部分,引用;*解引用符
指向指標的指標:
int i=999;
int *p=&i;
int **pp=&p;
int ***ppp=&pp;
對指標取位址;
指向指標的指標pp前必須有兩個*;指向指標的指標的指標的指標ppp前要有三個*;
對指標的引用:
指標是乙個物件,可以對其引用。
int i=999;
int *p=&i;
int *&r=p;//r是對指標p的引用
r=&i; //r引用了乙個指標,r賦值&i就是令p指向i
*r=0; //將p的值置為空
C 指標與引用
include 引用傳遞 int add1 int x,int y 指標傳遞 int add2 int x,int y 值傳遞 int add3 int x,int y void main int a 1 int b a 引用,表示b的引用指向了a 定義引用 開頭 必須賦初值 引用變數不占用記憶體 ...
C 指標與引用
從函式引數傳遞說起 int addition int x,int y int main void duplicate int a,int b int main 按值傳遞,顧名思義,函式形參僅僅得到變數傳來的值,函式的任何操作並不對變數產生任何變化 按位址傳遞,他的定義方式與按值傳遞不一樣 注意其在m...
C 引用與指標
1 引用即給當前物件起了個別名,通過將宣告符寫成 t c的形式來定義引用,其中t是變數名,c是當前物件的名字 修改別名相當於修改當前物件,引用必須初始化,且不能更改指向物件 example int a 10 定義a及初始化 int c a 定義a的引用c cout2 引用不是物件,只是對目前已經存在...