多维数组并没有特殊的语法,只不过是数组的元素仍然是数组。多维数组定义方式:
类型 数组名 [ 常量N1 ][ 常量N2 ]……[ 常量NN ]
上面格式代表的意义是,”数组名“ 有 N1 个元素,每个元素又是拥有 N2 个元素的数组,N2个元素每个元素又是N3个元素的数组……,以此类推。
- int a[5][8] ;
- char s[3][6][4];
引用格式如下:
数组名[下标1][下标2]……[下标N]
例:
- char s[3] [6] [4];
- s[1] [3] [2] = 'c';
- putchar( s[1] [3] [2] );
多维数组初始化举例:
- int n[3] [2] = {{3,3}, {1,2}, {4,4}};
- char s[3] [2] [4] = {{{'1','2','3','4'}, {'1','1','1','2'}}
- {{'a','a','a','a'}, {'b','b','b','b'}} ,
- {{'x','x','x','x'}, {'x','x','x','x'}}
- };
以二维数组举例,用户输入一个4 X 4矩阵,然后输出:
- #include<stdio.h>
- int main( )
- {
- int a[4][4];
- for(int i = 0 ; i < 4 ;++i)
- {
- printf("请输入矩阵第%d行\n",i + 1);
- for(int j = 0;j < 4;++j)
- {
- scanf("%d",&a[i][j]);
- }
- }
- printf("矩阵如下:\n");
- for(int i = 0 ; i < 4 ;++i)
- {
- for(int j = 0;j < 4;++j)
- {
- printf("%d ",a[i][j]);
- }
- putchar('\n');
- }
- getchar( ) ;getchar( ) ;
- return 0;
- }
效果类似如下图:
输入方式不同,效果不同,仅供参考。