一級指標
int *p;
上述**定義了乙個一級指標變數,int為基型別。指標變數的基型別用來指定此指標變數可以指向的變數的型別。一級指標變數也就是儲存著另外乙個變數位址的變數
在定義指標時應注意指標變數必須指定基型別。且必須給指標變數賦初值,在不確定該指標變數要指向什麼的時候應該給其賦null,否則該指標變數將會變為乙個野指標。
二級指標
char **p;
**定義了乙個二級指標變數p。p是乙個指標變數,他與一級指標不同的是,一級指標儲存的是資料的位址,二級指標儲存的是一級指標的位址。
在《c語言深度剖析》裡簡紹了二級指標的用法:
第一步:根據p這個變數,取出它裡面存的位址。
第二步:找到這個位址所在的記憶體
第三步:用鑰匙開啟這塊記憶體,取出它裡面的內容,*p
第四步:找到第二次取出的這個位址。
第五步:用鑰匙開啟這塊記憶體,取出它裡面的內容,這就是我們真正的資料,p的值。
指標和陣列
指標:儲存資料的位址,任何存入指標變數p的資料都會被當作位址來處理。p本身的位址由編譯器另外儲存,儲存在**我們不可而知。常用於動態資料結構。
陣列:儲存資料,陣列名a代表的是陣列首元素額首位址,而不是陣列的首位址。&a才是整個陣列的首位址。a本身的位址由編譯器儲存,具體在哪我們也不可而知。常用於儲存固定數目且資料型別相同的元素。
指標陣列
int *p[4];
指標陣列:儲存指標的陣列。
陣列指標:指向陣列的指標。
一級指標 二級指標 指標和陣列 指標陣列
一級指標存放的是變數的位址 一級指標名就可以等於這個位址 二級指標存放的是一級指標的位址,同樣指標名就是這個位址 陣列指標是乙個指標 它所存放的位址是陣列變數的位址,即指向不同陣列 所以說一級指標 二級指標 陣列指標都是指標,只是型別不同 而指標陣列,是乙個陣列,他存放的資料型別是指標型別 p是指標...
一級指標 二級指標 指標和陣列 指標陣列總結
1.指標 指標是個變數,用於存放記憶體單元的位址 編號 2.一級指標 舉例 int a 8 int p a p是乙個一級指標,它存放的是變數a的位址,對p解引用得到的就是a的值。int a 3 int p a 這裡的p也是乙個一級指標,存放的是陣列的首位址,陣列名就是陣列的首位址,對p解引用得到的是...
一級指標 二級指標 指標和陣列 指標陣列總結
一級指標 二級指標 指標和陣列 指標陣列總結我們在乙個程式中已經使用了一級指標了,如果想修改這個一級指標或者這個一級指標指向的內容,就會使用到二級指標了,但是,為了 的可讀性,最好用二級以下的指標解決。指標變數需要指向乙個記憶體空間,記憶體空間相當於門牌號,而對乙個指標解引用 相當於間接訪問這個指標...