C++2 D配列初期化の形式

1358 ワード

データ型配列名[整数式][整数式]={データを初期化};{}に各配列要素の初期値が与えられ、各初期値の間にカンマで区切られます.{}の初期値を各配列要素に順次付与する.初期化には、(1)支店で初期化する方法がいくつかあります.
int a[2][3]={{1,2,3},{4,5,6}};

{}内部ではさらに{}で各行を分離し,第1対の{}の初期値1,2,3は0行の3要素の初期値である.2番目のペア{}の初期値4,5,6は、1行の3要素の初期値です.次の文を実行します.
int a[2][3];
a[0][0]=1;a[0][1]=2;a[0][2]=3;a[1][0]=4;a[1][1]=5;a[1][2]=6;

初期化されたデータの数は、配列要素の数を超えてはいけません.そうしないと、エラーが発生します.
(2)非支店の初期化
int a[2][3]={ 1,2,3,4,5,6};

{}のデータをa配列の各要素に順次付与する(行別付与).すなわちa[0][0]=1;a[0][1]=2;a[0][2]=3;a[1][0]=4;a[1][1]=5;a[1][2]=6;
(3)部分配列要素の初期化
static int a[2][3]={{1,2},{4}};

1行目は2つの初期値しかなく、a[0][0]とa[0][1]に順番に割り当てられる.2行目の初期値4はaに与えられる[1][0].ストレージタイプはstaticであるため、他の配列要素の初期値は0です.注意:Turbo CなどのC言語システムでは、staticではないストレージタイプの変数や配列の初期値も0です.static int a[2][3]={ 1,2}; 2つの初期値、すなわちa[0][0]=1,a[0][1]=2のみであり、残りの配列要素の初期値は0である.
(4)1次元の定義は省略できますが、2次元の定義は省略できません.システムは、初期化されたデータの個数と2次元の長さに基づいて、1次元の長さを決定することができる.
int a[ ][3]={ 1,2,3,4,5,6};

a配列の1次元の定義は省略され,初期化データは6個,2次元の長さは3,すなわち行当たり3個であるため,a配列の1次元は2である.一般に、1次元の定義を省略すると、1次元の大きさは、初期値の個数が2次元で除算され、得られる商が1次元の大きさであるという規則に従って決定される.除去できない場合は、次元のサイズは商に1を追加します.例えば、int a[][3]={1,2,3,4};等価:int a[2][3]={1,2,3,4};支店が初期化されると、1次元の定義を省略することもできます.以下の配列定義には2対{}があり,a配列に2行あることを示している.static int a[ ][3]={{1,2},{4}};