二维数组的定义
类型 数组名[常量表达式][常量表达式]
int a[6][6];//66,6行6列
char b[4][5];//45,4行5列
double c[6][3];//6*3,6行3列
二维数组的访问
数组名[下标][下标]
a[0][0];//访问a数组中第1行第1列的元素
b[1][3];//访问b数组中第2行第4列的元素
c[3][3];//访问c数组中第4行第4列的元素
二维数组的初始化
例:输出 int a[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };的结果
#include <stdio.h>
#include<string.h>
#include<Windows.h>
#pragma warning(disable:4996)
int main()
{
int a[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
printf("%d ", a[i][j]);
}
printf("\n"); //j循环完换行循环i
}
system("pause");
return 0;
}
结果:1,2,3,4
5,6,7,8
9,10,11,12
对部分元素赋初值
int a[3][4]={{1},{5},{6}};//每一行数组第一位元素分别定义为1,5,6
对特定元素初始化赋值
int a[3][4]={[0][3] = 1,[1][2] = 2,[2][3] = 3};
/*意为第1行第4列的元素赋值为1,
第2行第3列元素赋值为2,
第3行第4列赋值为3;*/
矩阵的转置
#include <stdio.h>
#include<string.h>
#include<Windows.h>
#pragma warning(disable:4996)
int main()
{
int a[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
int i, j;
for (i = 0; i < 4; i++) {
//将i的长度换为j的长度
for (j = 0; j < 3; j++) {
//将j的长度换为i的长度
printf("%d ", a[j]j[i]);
//将a[i][j]换为a[j][i]
}
printf("\n"); //j循环完换行循环i
}
system("pause");
return 0;
}