C語言 陣列指標初始化

2021-10-07 08:41:54 字數 573 閱讀 9203

char m[3][4];

m[3][4]=;

當然不行,不管從初始化器,還是從原理上來講都不正確,首先a[3][4]表示的是陣列中第4行第5個元素,請問,可以對陣列中具體的乙個元素賦這麼長一串值嗎?所以不能這樣賦值。第一種寫法是屬於初始化,初始化會自動為陣列中的每乙個元素賦正確的值。

陣列指標初始化方法:

int (*p)[4];;

char a[3][4];

p=a;

p=&a[0];

p=a+1;

p=&a[1]; //都正確

p=a[0]; //錯誤

p=a[1]; //錯誤。

首先,指標p表示的是,指向乙個含有4個元素的一維陣列的指標,因此,必須把乙個含有4個元數的陣列的位址賦給指標p才會正確。因為二維陣列名a,其實就是&a[0],表示二維陣列第一行的行指標,這一行包含有4個元素,因此他就是乙個含有4個元素的一維陣列的指標,是正確的賦值。同理a+1是與&a[1]等價的,也就是表示的是二維陣列第1行的的行指標,同理a[0]是錯誤的,因為a[0]是指的第一行第乙個元素的位址,也就是&a[0][0],他只含有乙個元素,不是乙個陣列的位址,所以錯誤

C語言陣列初始化

陣列宣告時必須指明陣列元素的資料型別以及陣列中元素個數,計算機才可以為陣列預留出足夠的空間。陣列大小必須為常量。define size 10 int a 12 int b 100 c size 可以在宣告時通過初始值列表實現陣列元素初始化 int a 3 如果初始值列表中提供的元素個數少於陣列元素個...

C語言陣列初始化

wchar t wname 128 char cname 256 我感興趣的是 1.這種賦值的結果。2.這種形式是否符合標準編碼規則?我找到了如下資料,可能有助於對這個知識點的掌握。初始化值的個數可少於陣列元素個數。當初始化值的個數少於陣列元素個數時,前面的按序初始化相應值,後面的初始化為 0 全域...

C 陣列初始化與指標

1.很容易出現的誤區 int a 5 全部初始化為 int a 5 我想全部初始化為 上面初始化 1 的作法將會產生錯誤,而且你很可能想當然這麼以為,從而導致耗費時間。如果真正理解資料初始化的原則,就不會犯錯了。陣列初始化列表中的元素個數小於指定的陣列長度時,不足的元素補以預設值。對於基本型別int...