本文學習自 狄泰軟體學院 唐佐林老師的 c++課程
實驗1 :可以使用變數和常量初始化const引用變數, const引用讓變數擁有唯讀屬性
注意1 :不可以直接用字面常量初始化 引用變數,但是可以初始化 const引用變數
注意2 : const引用讓變數擁有唯讀屬性,如
int a = 4;
const int& b = a;
此時只是變數b具有唯讀屬性,變數a屬性不變。
實驗2 :引用的本質,是乙個指標常量
實驗3 :引用的本質,是乙個指標常量
實驗4:引用的使用-千萬不要返回區域性變數發引用
注意:引用就是變數本身,內部本質實現是乙個指標常量,c++中引入引用的目的是代替指標。
實驗1 :可以使用變數和常量初始化const引用變數, const引用讓變數擁有唯讀屬性
注意 :不可以直接用字面常量初始化 引用變數,但是可以初始化 const引用變數
結論;如果說我們想要使乙個已經存在的變數擁有唯讀屬性,變成乙個唯讀變數,在c++中只需要定義乙個const引用就可以了。
實驗2 :引用的本質,是乙個指標常量
#include struct tref
;int main(int argc, char *ar**)
;
//1 ,引用就是變數本身,求 char & 的大小也就是求它對應的變數的大小。
printf("sizeof(char&) = %d\n", sizeof(char&));
// sizeof(rc) == sizeof(c) = 1
printf("sizeof(rc) = %d\n", sizeof(rc));
//4 ??? 指標大小為4
實驗3 :引用的本質,是乙個指標常量
#include struct tref
;int main(int argc, char* ar**)
; printf("sizeof(r) = %d\n", sizeof(r));
printf("sizeof(r.before) = %d\n", sizeof(r.before));
printf("sizeof(r.after) = %d\n", sizeof(r.after));
printf("&r.before = %p\n", &r.before); //應用的本質是指標常量 ,指標的位址
printf("&r.after = %p\n", &r.after); //應用的本質是指標常量 ,指標的位址
實驗4:引用的使用-千萬不要返回區域性變數發引用
#include //注意 引用不要返區域性變數的引用
int& demo() //int* const 返回值是指標 即位址
int& func() //int* const 返回值是指標 即位址
int main(int argc, char* ar**)
C 引用的本質分析
事物的難度遠遠低於對事物的恐懼!下邊來看看乙個老生常談的交換函式 include using namespace std 引用方式 void swap1 int a,int b 注意 函式引數中的引用不需要初始化 指標方式 void swap2 int a,int b int main int ar...
C 5 引用的本質分析
swap 函式的對比 指標版本 void swap int a,int b 引用版本 注意 函式中的引用行參不需要進行初始化!void swap int a,int b 函式對比分析 引用如果作為函式的形參時,不需要進行初始 初始化發生在呼叫的時候。指標版本要交換a和b的值,傳進去的是a和b的位址,...
C語言高階 第26課 指標的本質分析
程式中的變數只是一段儲存空間的別名,那麼是不是必須通過這個別名才能訪問這段儲存空間?號的意義 在指標宣告時,號表示所表明的變數為指標 在指標使用時,號表示取指標所指向的記憶體空間中的值。號類似於一把鑰匙,通過這把鑰匙可以開啟記憶體,讀取記憶體中的值。int i 0 int j 0 int p i 指...