时间飞逝,不知不觉已经更了十六篇了,希望有小可爱可以给我留言哦!今天讲的是“定义二维数组”,这章是连这上一章的“一维数组”的,不知道上一章的内容小可爱们学习起来有难度吗?话不多说,现在就开始今天的课程。下面是我的一些C语言笔记,希望对大家有所帮助哦!1、定义二维数组
格式:类型名数据名[一维上界][二维上界]
例:定义一个2行2列的整型数组a。
Inta[2][2];
此例中数组a共有4个元素,分别是a[0][0]、a[0][1]、a[1][0]、a[1][1]
例:定义一个4行4列的整型矩阵a。
Inta[4][4];
2、二维数组看出一维数组
例:a[3][4]看出由a[0]、a[1]、a[2]组成的一维数组,每个元素又由4个元素组成的一维数组
注意:a[0]、a[1]、a[2]不是元素,而是数组每行首地址。
3、二维数组中地址的表示
Inta[4][3];
第一行的地址表示为(a[0])
第二行的地址表示为(a[1])
例题1:元素a[3][2]的地址表示为(a[3][2])或(a[3]+2)
例题2:元素a[3][2]的第4行第3列,第4行的地址表示为a[3],再往后加2,就是元素a[3][2]的地址。
4、二维数组的初始化
用嵌套的大括号将数组初值括起来
例:inta[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
例:inta[4][3]={{1,2},{4,5},{7},{10}};
此例中系统自动给空缺的地方补0.
例:inta[4][3]={1,2,4,5};
此例中数组a第一行中元素和第二行元素依次为1,2,4,5其余全部是0。
例图:
5、定义二维数组大小
例:inta[][3]={{1,2,3},{4,5},{6},{8}};
有4个行括号,因此说明只有4行3列。
注意:二维数组中,任何情况下只能省略行,不能省略列。
例:inta[][3]={{1,2,3,4,5};
这种方式计算规则如下:
1)第二维数值能被初值个数整除
第一维数=商数
2)第二维数(值)不能被初值个数整除
第一维数=商数+1
例题:从键盘上输入一个4行4列整数矩阵,输出左上角到右下角对角线元素之和。
#includestdio.h
main()
{
inta[4][4],i,j,sum=0;
for(i=0;i4;i++)
for(j=0;j4;j++)
scanf(“%d”,a[i][j]);
for(i=0;i4;i++)
for(j=0;j4;j++)
if(i==j)sum=sum+a[i][j];
printf(“%d”,sum);
}
编程