若有说明int a[3][4];则对a数组元素的正确引用是

A a[2][4] B a[1+1][0] 这道题为什么是B而不是A呢 这两个选项有区别吗
2024-11-17 16:41:07
推荐回答(4个)
回答1:

二维数组引用基本格式:数组名[行标][列标]。

行标和列标都是从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列数组元素

}

}

回答2:

int a[3][4],这个声明的第二维是4个元素,下标应该是从0到3。而A中第二维的下标为4,大于3,越界。

欢迎访问我的论坛:
http://www.chinesebloger.com
期待您的支持:)

回答3:

若有说明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");
}

回答4:

int a[3][4],这个声明的第二维是4个元素,下标应该是从0到3。而A中第二维的下标为4,大于3,越界。