logo

C の 2 次元配列

2 次元配列は、配列の配列として定義できます。 2D 配列は、行と列のコレクションとして表すことができる行列として編成されます。ただし、2D 配列は、リレーショナル データベースに似たデータ構造を実装するために作成されます。これにより、必要に応じて任意の数の関数に渡すことができる大量のデータを一度に保持することが容易になります。

8対1マルチプレクサ

C での 2 次元配列の宣言

2D 配列を宣言する構文を以下に示します。

 data_type array_name[rows][columns]; 

次の例を考えてみましょう。

 int twodimen[4][3]; 

ここで、4 は行数、3 は列数です。

C での 2D 配列の初期化

1D 配列では、宣言と初期化が同時に行われる場合、配列のサイズを指定する必要はありません。ただし、これは 2D 配列では機能しません。少なくとも配列の 2 次元目を定義する必要があります。 2 次元配列は次の方法で宣言および定義できます。

 int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}}; 

C での 2 次元配列の例

 #include int main(){ int i=0,j=0; int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}}; //traversing 2D array for(i=0;i<4;i++){ for(j="0;j&lt;3;j++){" printf('arr[%d] [%d]="%d" 
',i,j,arr[i][j]); } end of j i return 0; < pre> <p> <strong>Output</strong> </p> <pre> arr[0][0] = 1 arr[0][1] = 2 arr[0][2] = 3 arr[1][0] = 2 arr[1][1] = 3 arr[1][2] = 4 arr[2][0] = 3 arr[2][1] = 4 arr[2][2] = 5 arr[3][0] = 4 arr[3][1] = 5 arr[3][2] = 6 </pre> <h3>C 2D array example: Storing elements in a matrix and printing it.</h3> <pre> #include void main () { int arr[3][3],i,j; for (i=0;i<3;i++) { for (j="0;j&lt;3;j++)" printf('enter a[%d][%d]: ',i,j); scanf('%d',&arr[i][j]); } printf('
 printing the elements ....
'); for(i="0;i&lt;3;i++)" printf('
'); printf('%d	',arr[i][j]); < pre> <p> <strong>Output</strong> </p> <pre> Enter a[0][0]: 56 Enter a[0][1]: 10 Enter a[0][2]: 30 Enter a[1][0]: 34 Enter a[1][1]: 21 Enter a[1][2]: 34 Enter a[2][0]: 45 Enter a[2][1]: 56 Enter a[2][2]: 78 printing the elements .... 56 10 30 34 21 34 45 56 78 </pre> <hr></3;i++)></pre></4;i++){>

C の 2D 配列の例: 行列に要素を格納し、それを出力します。

 #include void main () { int arr[3][3],i,j; for (i=0;i<3;i++) { for (j="0;j&lt;3;j++)" printf(\'enter a[%d][%d]: \',i,j); scanf(\'%d\',&arr[i][j]); } printf(\'
 printing the elements ....
\'); for(i="0;i&lt;3;i++)" printf(\'
\'); printf(\'%d	\',arr[i][j]); < pre> <p> <strong>Output</strong> </p> <pre> Enter a[0][0]: 56 Enter a[0][1]: 10 Enter a[0][2]: 30 Enter a[1][0]: 34 Enter a[1][1]: 21 Enter a[1][2]: 34 Enter a[2][0]: 45 Enter a[2][1]: 56 Enter a[2][2]: 78 printing the elements .... 56 10 30 34 21 34 45 56 78 </pre> <hr></3;i++)>