C C 指標001 指標與陣列的區別

2021-09-11 07:28:03 字數 598 閱讀 7841

指標和陣列咋看起來很像,但其定義方式、資料提取方式不一致:

主要區別:

1、指標儲存的是資料的指標,而陣列直接儲存資料;

2、指標需要間接訪問資料,先取得指標的內容,把它作為位址,然後由這個位址去提取資料;而資料像a[i]則可以以a+i為位址取得資料;

3、指標通常用於動態資料結構,而陣列通常用於儲存固定數目且資料型別相同的元素;

4、指標相關的函式為malloc、free、new,而陣列在棧上隱式分配和刪除。

5、指標通常指向匿名資料,而陣列自身即為資料名。

定義指標時,編譯器不會為指標所指向的物件分配空間,他只是為指標本身分配空間,一般為4個位元組(根據作業系統位數來),除非在定義時同時賦值給指標的乙個字串常量是進行初始化。

char *p = "test";

其中p中儲存的值為字串常量"test"的位址。

如單獨定義 char *p;則p沒有初始化,儲存值可為任意數。

如下指標定義錯誤:

char *p = 6.28;

因為6.28是浮點數常量,編譯器不會給浮點數常量分配記憶體空間,也就是不會有記憶體位址,無法給p賦值。

關於指標和陣列能夠等同的部分將在接下文中描述。

指標(三) 指標陣列

指標陣列定義 一維指標陣列的定義形式 型別名 陣列名 陣列長度 char p 5 乙個陣列,若其元素均為指標型別資料,稱為指標陣列,指標陣列中的每乙個元素都相當於乙個指標變數。指標陣列的初始化 使用位址為指標陣列初始化 char p 5 指標陣列和二級指標 int main char temp 定義...

38,指標與陣列

include 陣列名就是陣列的位址,陣列的位址就是首元素的位址 所以,獲取陣列位址有兩種方式 nums 0 或nums int main int argc,const char argv int p nums int p nums 0 return0 include int main int ar...

指標(2)指標陣列 陣列指標 陣列指標陣列

都說指標是c語言的精華所在。今天繼續對指標的探索!指標下一 指標陣列 陣列指標 指標陣列 是存放指標的陣列。如 int p 5 該陣列長度為5,存放的是指向整型變數的指標。陣列指標 是乙個指向陣列的指標。如 int p 5 這是乙個指向長度為5的整型陣列的指標。1.陣列指標在一維陣列中的應用 int...