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...