--指標和引用
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 引用一經初始化就繫結到乙個記憶體空間,且只能是這個記憶體空間的名字,定義時必須初始化...
引用和指標的學習筆記
引用和取位址沒有任何關係,除了他們的符號是一樣的。定義時用 只是宣告的作用,跟定義指標的 的作用是一樣的。它繫結的是乙個物件,所以複製的時候用 把他和乙個物件繫結在一起。引用並非物件,沒有實際位址。他只是為了乙個已經存在的物件所起的另乙個名字,一旦定義了引用,就無法另其再繫結到另乙個物件,之後每次使...