C 指標與引用

2021-07-24 08:39:40 字數 1256 閱讀 8802

一、引用(左值引用)

引用時為物件起了另外乙個名字。

形式:&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 引用不是物件,只是對目前已經存在...