引用和指標筆記

2021-06-25 23:04:26 字數 911 閱讀 6637

--指標和引用

1.區分定義和作為形參的意義:

定義:  int *p;   //定義了乙個指標變數p  而不是指標變數*p

做形參 : void f(int *p)//要求使用整型的指標變數來作為形式引數,正常傳入時直接用指標變數即可,加上*後表示的是乙個整型數,帶入程式則會報錯

而引用,就是給同乙個位址賦予了新的名字,讓一塊空間可通過多個變數名來訪問

定義:  int i;int &j=i;  //  j 指向了原來i指向的整型數所在的空間

二者區別主要是指標所指向的位址可以改變,而引用在一開始定義時就被限定只能指向某一確定的位址;

2.指標作為函式的返回值或形式引數

char *substring(char * s)    // return 後面是乙個指標變數名 不要新增了*畫蛇添足

3引用作為函式的返回值或形式引數

作為函式的形式引數可以修改函式外與引用變數關聯的屬性,例如:

void f(int &a ,int &b)

// 該函式即可交換函式外的兩個變數的數值

用引用返回乙個函式值的最大好處是,在記憶體中不產生被返回值的副本。

例如:#include

float temp; //定義全域性變數temp

float fn1(float r); //宣告函式fn1

float &fn2(float r); //宣告函式fn2

float fn1(float r) //定義函式fn1,它以返回值的方法返回函式值

float &fn2(float r) //定義函式fn2,它以引用方式返回函式值

void main() //主函式

引用作為返回值,不能返回區域性變數的引用。主要原因是區域性變數會在函式返回後被銷毀,因此被返回的引用就成為了"無所指"的引用,程式會進入未知狀態。

C 筆記 引用和指標

1.為什麼傳引用比傳指標安全 由於不存在空引用,並且引用一旦初始化為指向乙個物件,他就不能被改變為另乙個物件。因此引用安全。2.複雜指標 2.1乙個有10個指標的陣列,該指標是指向乙個int型的 int a 10 2.2乙個指向有10個整形數陣列的指標 int a 10 2.3乙個指向函式的指標,該...

c 學習筆記 指標和引用

指標和引用的區別 1 引用是乙個變數的別名,本身不單獨分配自己的記憶體空間,跟原來變數共享記憶體空間 而指標需要重新分配自己的記憶體空間,用來儲存指向物件的位址。2 引用訪問乙個變數是直接訪問,而指標是間接訪問。3 引用一經初始化就繫結到乙個記憶體空間,且只能是這個記憶體空間的名字,定義時必須初始化...

引用和指標的學習筆記

引用和取位址沒有任何關係,除了他們的符號是一樣的。定義時用 只是宣告的作用,跟定義指標的 的作用是一樣的。它繫結的是乙個物件,所以複製的時候用 把他和乙個物件繫結在一起。引用並非物件,沒有實際位址。他只是為了乙個已經存在的物件所起的另乙個名字,一旦定義了引用,就無法另其再繫結到另乙個物件,之後每次使...