一:指標
1指標變數的定義,由資料型別後跟星號,再跟指標變數名組成。
2&表示乙個實體的位址,此符號可用來對指標變數初始化和賦值
如:int count = 18;
int * iptr = &count;
int * ip;
ip = &count;
3*除了可以用來定義指標,標緻乘法運算子,還可以做間訪操作
間訪操作就是:取指標的值
如:int count = 18;
int * iptr = &count;
*iptr = 16;
cout<<*iptr<<" "《指標本身也是一種型別,在記憶體中也占有空間,所以也有指向指標的指標
如int count = 18;
int *ip = &count;
int* * iptr = &ip;
cout<<**iptr《指標雖然是乙個位址,但卻是有型別限制的
不能把float的變數位址賦值給int型的指標
但是可以對指標進行強制轉換
如:float f = 34.5;
int * ip = reinterpret_cast(&f);
cout<<*ip《陣列名本身就是表示元素型別的位址
可以把陣列名賦值給指標變數
並且可以根據指標的增減來訪問陣列中的物件
如:int arr[6];
for(int i=0; i<6; i++)
for(int * p = arr; p
8常量指標是指向常量的指標
指標常量是指標值不能修改的指標
我想這兩個應該很少用到吧
二:引用
1引用在這裡是個名詞
從邏輯上理解引用其實就是個別名
引用定義時必須初始化,這是它與指標根本不同的地方
引用與指標相似也要求嚴格的型別匹配
2修改引用的值就是修改實體的值,就是修改對應的變數的值
int a = 12;
int & r = a;
r = 9;
cout<應輸出9
應注意的是:
引用的值雖然可能發生變化但其位址是不變的
可以通過&r檢視該引用的位址
與指標對比:
指標可以改變關聯的實體,引用只是乙個實體的別名
指標可以操作多個實體,引用只能操縱乙個實體
引用比指標更安全些,更適合高階程式設計,安全程式設計
C 隨筆(指標和引用的使用注意事項)
1 不要用函式的行參,行參是用來向函式裡 傳遞引數的。如class obj obj obj const obj obj class objs objs obj m obj obj void getobj obj m obj obj getobj void getobj obj obj ptr voi...
學習指標注意事項
宣告指標的一般形式 資料型別 指標變數名 1 在初始化時賦值 2 在後期賦值 1 通過變數名訪問乙個變數是直接的,通過指標訪問乙個變數是間接的 2 p i 意思是取變數i的位址賦給變數p 1 指標變數名是p,而不是 p 2 指標變數不可以直接賦值 int a 100 int p p 100 編譯不能...
c 中引用變數的注意事項,和指標的區別
1.定義引用時必須初始化 變數或者常量 且初始化後不能再指向其他變數或者常量。指標卻可以在定義時不初始化,可以在定義後的任何地方初始化,或者改變指向的物件。2.存在指標的引用,但是沒有引用的指標,因為引用在概念上只是乙個代號,沒有實體空間。3.不能定義引用陣列,即便用類似 int b 5 初始化也不...