【8-1】編寫乙個陣列的宣告,把陣列的某些特定位置初始化為特定的值。這個陣列的名字應該叫char_value,它包含3×6×4×5個無符號字元。
下面的表中列出的這些位置應該用相應的值進行靜態初始化。
那些在上表未提到的位置應該被初始化為二進位制值0而不是字元』\0',注意:應該使用靜態初始化,在你的解決方案中不應該存在任何可執行**!儘管並非解決方案的一部分,你可能很想編寫乙個程式,通過列印陣列的值來驗證它的初始化,由於某些值並不是可列印的字元,所以請把這些字元用整型的形式列印出來(用八進位制或十六進製制輸出會更方便一些)。注意,用兩種方法解決這個問題,一次在初始化列表中使用巢狀的花括號,另一次則不使用,這樣你就能深刻理解巢狀花括號的作用。
首先看一下這個4維陣列的定義:
//3,6,4,5
, ,,},
, ,,},
, ,,},
, ,,},
, ,,},
, ,,},
}, ,,,
},, ,,},
, ,,},
, ,,},
, ,,},
, ,,},
}, ,,,
},, ,,},
, ,,},
, ,,},
, ,,},
, ,,},
}}
根據多維陣列的大括號分隔規則,整個維度沒有需要初始化得全部預設設定為0,其他按位置初始化特定值:
int main () ,
,,//110x
//111x
},,//120x
,//121x
,//122x
//123x
},,//130x
,//131x
//132x
},,//140x
,//141x
//142x}},
,,//210x
,//211x
},,//220x
,//221x
,//222x
//223x},,
,//240x
,//241x
,//242x
//243x
},,//250x
,//251x
,//252x
//253x}}
};printf("['a' - %c]",char_value[1][2][2][3]);
printf("[%d - %d]",' ', char_value[1][1][1][1]);
printf("[0xf3 - %x]\n",char_value[1][3][2][2]);
printf("['3' - %c] ",char_value[2][4][3][2]);
printf("[%d - %d] ",'n',char_value[1][4][2][3]);
printf("[%x - %x]\n",'\121', char_value[2][2][3][1]);
printf("[3 - %d]",char_value[2][4][3][3]);
printf("[125 - %d] ",char_value[2][5][3][4]);
printf("['x' - %c]\n",char_value[1][2][3][4]);
printf("[0320 - %o] ",char_value[2][1][1][2]);
printf("[' - %c] ",char_value[2][2][2][2]);
printf("['0' - %c]\n",char_value[2][2][1][1]);
return 0;
}
輸出:
['a' - a][32 - 32][0xf3 - f3]
['3' - 3] [110 - 10] [51 - 51]
[3 - 3][125 - 125] ['x' - x]
[0320 - 320] [' - '] ['0' - 0]
通過這個題目,可以很好的了解多維陣列的初始化。 多維陣列的初始化
嚴格地說,c 沒有多維陣列,所指的多維陣列其實就是陣列的陣列。如果陣列的元素又是陣列,則稱為二維陣列,其每一維對應乙個下標。可以用花括號括起來的初始化式列表來初始化多維陣列的元素。對於多維陣列的沒一行,再用花括號指定其元素的初始化式。int ia 3 4 其中標誌每一行的的內嵌的花括號是可選的 in...
python學習筆記 多維陣列初始化
python中初始化乙個5 x 3每項為0的陣列,最好方法是 multilist 0 for col in range 5 for row in range 3 我們知道,為了初始化乙個一維陣列,我們可以這樣做 alist 0 5 沒錯,那我們初始化乙個二維陣列時,是否可以這樣做呢 multi 0 ...
多維向量vector的初始化
vector ope 對於ope多維向量來說,如果沒有初始化其長度,是不可以通過ope 0 1 來初始化的,這時系統會報錯!解決方法 1.就是用push back 函式向末尾新增元素。include include includeusing namespace std int main for in...