C 指標與陣列的理解

2021-10-25 19:11:08 字數 802 閱讀 7996

參考文章(雖然部分內容有錯誤,但是整體講的不錯):

int a[3] = ;

輸出如下:

陣列a的元素型別為int,因此相鄰兩個元素的位址相差4個位元組。

每個元素的位址由16個十六進製制數表示,每個十六進製制數可由4個二進位制數表示,8個二進位制數占用乙個位元組的記憶體空間。因此元素的位址(即指標變數)占用8個位元組的記憶體空間,定址空間為

對於32位的系統每個元素的位址由8個十六進製制數表示,因此元素的位址(即指標變數)占用4個位元組的記憶體空間,定址空間為

#include using namespace std;

int main();

int b = 1;

int *c = &b;

system("pause");

}輸出如下:#include using namespace std;

int main()

; int(*p1)[3] = &a;

p1 = p1 + 1;

int *p2 = a;

p2 = p2 + 1;

int *p3= &a[0];

p3 = p3 + 1;

system("pause");

}

p1為乙個指標變數,指向乙個包含3個int型別資料的陣列(即,陣列指標),當執行p1=p1+1操作後,p1的位址值將跳過12個位元組。

p2為乙個指標變數,指向乙個int型別資料,當執行p2=p2+1操作後,p2的位址值將跳過4個位元組。

因此當指標變數自加1時,其位址值跳過多少個位元組,完全取決於這個指標變數是如何定義的。

陣列指標與指標陣列的理解

在進行閱讀yolo原始碼的時候,由於其都是用c寫的,在指標方面,遇到了很多問題,現在就問題,對c進行更深的理解。1.c當中的strcpy與strcat函式的區別 字串處理strcpy,strcat函式的用法 1 strcat是用來連線兩個字串的,原型是char strcat char dest,ch...

指標陣列與陣列指標的理解

指標陣列與陣列指標是十分繞口的,也不容易記憶,想要知道它是什麼?就看它後面是什麼詞!指標陣列 指標陣列後面的詞就是陣列,所以它就是陣列,而陣列裡面放的是指向這個型別的指標 陣列指標 陣列指標後面的詞是指標,則它就是個指標。在知道指標陣列和陣列指標字面的意思之後,我們就要解決遇到的表示式是指標陣列還是...

C語言 陣列與指標的理解

include stdio.h include stdlib.h void func int a int main int argc,char argv printf the value of array name y d n y printf the value of array name y d...