二维数组引用基本格式:数组名[行标][列标]。
行标和列标都是从0开始,最大下标为行(列)标长度-1。
比如:a[0][1],表示第一行第二列的数组元素。
二维数组:
由行和列组成的二维表格形式的元素,其实也就是矩阵。
基本格式:
数据类型 数组名[行长度][列长度];
行长度为二维数组行的个数,必须为常量表达式,不能为变量。
列长度为二维数组每一行列的个数,必须为常量表达式,不能为变量。
二维数组包含的元素的个数是:行长度*列长度,其中每个元素占据的字节数是sizeof(数据类型),故二维数组占据的内在字节数是 行长度*列长度*sizeof(数据类型)。
举例:
定义一个二维数组a,包含4行4列的元素,每个元素均为int类型
int a[4][4];
扩展资料:
二维数组初始化时,行的个数可以省略,而列的个数不能省略,因为在实际内存中二维数组是在连续空间存放的,如果不给出列的个数,那么就无法确认每一行的元素个数。
二维数组的遍历:
for(i=0;i for(j=0;j //a[i][j] 表示当前第i+1行第j+1列数组元素 } }
int a[3][4],这个声明的第二维是4个元素,下标应该是从0到3。而A中第二维的下标为4,大于3,越界。
欢迎访问我的论坛:
http://www.chinesebloger.com
期待您的支持:)
若有说明int a[3][4];则对a数组元素的正确引用是 a[1][3]。
a[2][4]越界了
最后一个元素a[2][3]
引用时下标从0开始
第一行a[0][0] a[0][1]...
第三行a[2][0] a[2][1]...
程序1.
//定义为局部性质的数组
#include
void main()
{
int a[5]; //定义局部性质的数组
int i;
for(i=0;i<5;i++)
{
printf("%2d",a[i]);
}
printf("\n");
}
程序2.
//定义为全局性质的数组
#include
int a[5]; //定义为全局性质的数组
void main()
{
int i;
for(i=0;i<5;i++)
{
printf("%2d",a[i]);
}
printf("\n");
}
int a[3][4],这个声明的第二维是4个元素,下标应该是从0到3。而A中第二维的下标为4,大于3,越界。