標籤:
一:指標部分
指標是一種變數類型,聲明指標變數需要分配獨立的儲存空間,指標可以為空白『void』表示不指向任何對象。
指標裡儲存的值是一個地址,可以通過這個地址擷取和改變所儲存變數的值。
指標的類型必須與其所指向變數的類型一致,可以在任何時候改變指向的變數……
————————————————————這些是簡單理論的囉嗦,下面說些代碼相關的————————————————————————————
定義方式:int *p = &a; *是指標的標識符,表示p是一個指標類型的變數,這裡的變數a,必須是一個int類型。 &運算子可以擷取變數的地址
取值方式:(可能有點繞)通過指標擷取所指向變數的值是這樣做的:*p
int a = 10; int *pa = &a; cout<<a<<"----"<<*pa<<"----"<<&a<<"----"<<pa<<endl;
View Code
輸出結果:10----10----0x7fff5fbff89c----0x7fff5fbff89c
可以看到通過*pa擷取的值跟a的值一樣,a的地址和pa的值也一直,說明指標類型的變數pa的值就是a的地址。
關於指標呢,還有很多東西可以講,比如指標運算、指向指標的指標、指標方法的指標、指標作為函數參數等等,下次針對指標專門來寫寫看
二:引用部分
有JAVA或C#等語言基礎的人對於引用的認識估計和指標沒什麼區別,在C++裡這兩者區別甚大,這也是我學習C++到目前為止跟之前知識體系差距最大的一點。
C++中引用其實就是給變數起一個別名,引用沒有自己獨立的儲存空間,與它引用的變數共用能存,對引用的操作就是對變數的操作(真假美猴王)。
定義方式 int &f = a; &這裡又是引用的標識符,f是一個對變數a的引用。f的類型是int那麼a的類型也必須是int。
int a = 10;int &fa = a;cout<<a<<"----"<<fa<<"----"<<&a<<"----"<<&fa<<endl;
View Code
輸出結果:10----10----0x7fff5fbff89c----0x7fff5fbff89c
可以看到引用fa的值和地址與變數a的值和地址一致。
引用的使用注意點:定義的時候初始化 int &fa; fa = a;這麼先定義後初始化的方式直接報錯(引用是沒有記憶體空間的)
Xcode學習C++(二、指標和引用)