指標和引用
概念上區別:
指標的定義格式如下:
《型別》*《指標名》[=《初始值》];
《型別》指出指標型別,《指標名》同識別符號,*用來表示他後邊的識別符號是指標名。
**指標在定義時可以初始化,也可以不初始化。
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...
指標和引用
指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能使用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但...