指標以及指標的分類

2021-08-03 00:26:45 字數 1135 閱讀 1372

指標就是有指向的變數,它指向的是和儲存指標本身型別相同的變數的空間,指標有多級指標,以及指標直接指向變數存放空間,二級指標指向的是存放同型別一級指標的空間,多級類推二級指向一級一樣指向它的前一級指標存放空間,下面在介紹指標的分類之前我簡單的通過畫圖展示一下指標和變數之間、指標和指標之間的指向關係:

在中可以看出有整型變數和整型一級和二級指標,一級指標指向了變數a,二級指標q指向了以及指標p,在裡也不難看出指標裡存放的是位址,這就是為什麼通過指標能找到它指向的變數,而且還能更改它的值,下面一段**體現:

這裡的二級指標改變和一級是一樣的,我們都知道p是取p所指向空間的值就是a,那麼*q是不是取q所指向的空間的值p,那麼我們把q指標(q)這樣寫我想能更好理解點,既然*q和p是相等的,那麼(*q)是不是就是*p了,那麼是不是通過**q同樣可以指向a,只不過是中間借鑑了乙個一級指標而已。

在經過上述閱讀後我相信哪怕是沒有學過指標的同學對指標應該有了認識,那麼接下來我們來說說指標的分類,指標按照他們的屬性可分為三類:

就是最普通的指標,定義類似: 型別 *變數名;

與之對比的是使用上有類似指標的功能 實際並不是指標。比如:迭代器

[乙個類過載 *和->操作符 那麼可以像指標一樣使用 但是這種並不是原生的]

第一種就是 void *指標 可以指向任意的資料結構 因此可以稱為"泛型"。

第二種就是指具有指標特性的泛型資料結構 如:泛型迭代器和接下來要說的智慧型指標。

c++中沒有自動**記憶體的機制,因此出現了智慧型指標。

一般我們將乙個指標封裝到乙個智慧型指標類中,該類中有乙個引用計數器。

對指標的複製等操作會使引用計數+1,delete操作會使引用計數-1。

指標的分類

指標的分類 1.按指向的物件劃分 整型指標 浮點指標 字元指標 陣列指標 指標陣列 結構體指標 函式指標等。int p int float p float char p char char p array 2 陣列指標 char p parray 2 指標陣列 char p func int 2.按...

指標陣列以及指向指標的指標

include include define maxlines 5000 進行排序的最大文字行 char lineptr maxlines 指向文字行的指標陣列 int readlines char lineptr,int nlines void writelines char lineptr,in...

指標學習日記 指標分類

陣列名取位址 1,跳過整個陣列 a 1 int a 3 4 printf p a 1 跳過48個位元組 printf p a 1 跳過16個位元組 printf p a 0 1 跳過16個位元組 printf p a 0 1 跳過4個位元組 printf p a 0 0 1 跳過4個位元組 3 陣列...