C語言基礎整理復現 指標陣列 陣列指標

2021-10-18 05:15:36 字數 1429 閱讀 5504

指標陣列本質是陣列,只不過這個陣列裡的元素都是指標元素。

陣列指標本質是指標,這個指標指向陣列。

看乙個表示式是陣列指標還是指標陣列,關鍵在於核心通過優先順序比較,最先跟誰結合。

int *p[1]
通過優先順序比較,上述表示式的核心p會先合結合,因此上述表示式的本質應該是陣列,其次加上*後,這個表示式可確定為指標陣列,陣列的元素都為指標,指向的都是int整型。

指標陣列的使用細節:

void fun1();

for(i=0;i<5;i++);是錯誤寫法,陣列p的元素都是指標(位址)

} //陣列名位址==第0個元素的位址

printf("%p-----%p\n",a,&a[0]);

//p的位址是這個指標陣列的位址

printf("%p\n",p);

//p[0]的位址是指標陣列中第0個元素(指標)存放的位址 p和p[0]不是乙個位址 p和&p[0]應該是一樣的

//通過p[0]和p[1]的位址可以驗證,32位機器指標佔4個位元組

int (*p)[10];		//int (*)[10] p  ----->  int (*)[10]為指標型別,p為指標變數
通過優先順序比較,因為()的存在,上述表示式的核心p會先合*結合,因此它本質是乙個指標,指向乙個int型別的陣列。

陣列指標細節:

簡單總結一下...指標陣列:首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身的大小決定,每乙個元素都是乙個指標,在32 位系統下任何型別的指標永遠是佔4 個位元組。它是「儲存指標的陣列」的簡稱。

陣列指標:首先它是乙個指標,它指向乙個陣列。在32 位系統下任何型別的指標永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道,具體要看陣列大小。它是「指向陣列的指標」的簡稱。

本文是個人總結,如果哪有問題、或者理解方法不對,還煩請大神幫忙指出來,十分感謝~~~

c語言基礎必備 指標陣列 and 陣列指標

對於指標陣列和陣列指標,單從字面上似乎很難分清它們是什麼,先來看看指標陣列和陣列指標各自的定義形式。指標陣列的定義形式為 是乙個陣列 型別名 陣列名 陣列長度 如 int p 8 陣列指標的定義形式為 是乙個指標 型別名 指標名 陣列長度 如 int p 8 現在來分析上述兩種定義形式,通過 int...

C語言基礎 指標陣列與陣列指標

一 指標陣列 在這一節中我們來學習乙個陣列,這個陣列比較特殊,也比較普通。說它特殊是因為這個陣列是指標的陣列,也就是說我們有乙個陣列,這個陣列裡存放的變數型別是指標型變數 說它普通是因為陣列變數其實與其它普通變數沒有什麼區別,指標變數就是一種可以存放記憶體位址的變數,所以它們也可以被定義成一串連續的...

c語言基礎必備 指標陣列 and 陣列指標

對於指標陣列和陣列指標,單從字面上似乎很難分清它們是什麼,先來看看指標陣列和陣列指標各自的定義形式。指標陣列的定義形式為 是乙個陣列 型別名 陣列名 陣列長度 如 int p 8 陣列指標的定義形式為 是乙個指標 型別名 指標名 陣列長度 如 int p 8 現在來分析上述兩種定義形式,通過 int...