引用和指標

2021-07-14 05:31:34 字數 1539 閱讀 2850

指標和引用

概念上區別:

指標的定義格式如下:

《型別》*《指標名》[=《初始值》];

《型別》指出指標型別,《指標名》同識別符號,*用來表示他後邊的識別符號是指標名。

**指標在定義時可以初始化,也可以不初始化。

int a=5;

int *pa=&a;

//pa是乙個int型變數a的指標

以下為一些常用的不同型別的指標的定義格式:

double *p;     

//p是乙個double型變數的指標

char *pc;      

//pc是乙個char型變數的指標

float *pf;      

//pf是乙個float型變數的指標

int (*pa)[3];  

//pa是乙個指向一位陣列的指標,該陣列是具有3個元素的int型陣列

int (*pfu)();   

//pfu是乙個指向函式的指標,該函式是乙個無引數的int型函式

int **pp;       

//pp是乙個指向一級指標的指標,為二級指標

引用的建立格式如下:

《型別》&《引用名》=《變數名/物件名》;

<>同識別符號,&是修飾符,用來說明他後邊的識別符號是引用名。

**在建立引用時一定要對引用進行初始化

例如:int a=5;

int &refa=a;

其中,ra是乙個引用名,ra是變數a的別名,即將ra繫結在變數a上,ra和a都是int型的,

**型別相同很重要,引用和被引用的變數必須型別相同

引用的一些特性:

*引用被繫結在建立時對它初始化的變數上,引用時該變數的別名。

*引用本身不占用記憶體空間,不是乙個變數。但是,引用具有值,也具有位址值。

*引用值的改變影響到被繫結的變數值,反之也一樣

指標和引用各自作為函式引數和返回值

1.指標作為函式引數;

指標作函式引數實現傳址呼叫,實參用位址值,形參用指標,具有較高的傳遞效率。

在被呼叫函式中可以通過指標來改變呼叫函式的實參值。

例如:

#includeusing namespace std;

void fun(int a,int *p)

int main()

{ int x=5;

int y=8;

int ret1=fun(x);

int ret2=fun(y);

cout<

執行結果:

結論:未完待續!

指標和引用,const 指標和const 引用

指標和引用是在使用中經常弄混淆的兩個概念。引用 reference 為物件起了另外乙個名字,用符號 表示。name,例如 int i 1024 int ref i 一般在初始化變數時,初始值會被拷貝到新建立的物件中,然而定義引用時,程式把引用和它的初始值繫結 bind 在一起,而不是將初始值拷貝給引...

指標和引用

一 先看一段 include using namespace std void freeptr1 int p1 void freeptr2 int p2 void main 思考 在 freeptr1 和freeptr2 的比較中,你能發現它們的不同點嗎?二 對 進行解釋 include using...

指標和引用

指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能使用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但...