12. 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是( )。

2024-12-02 03:58:31
推荐回答(5个)
回答1:

若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是3。

int a[][]:第一个中括号表示有此二维数组有几行,第二个表示有几列。

故int a[][3]={1,2,3,4,5,6,7};说明此数组有n行,3列;也就是说每行有三个元素,所以第一行有1,2,3 这三个元素,第二行有4,5,6三个元素,第三行有7这个元素,不足的两个元素由0来补足。

对数组进行初始化,要么两个维度都不写,由赋值的数组确定,或者第二维可以不写,第一维要写,再由赋值数组确定。

数组中的下标是从 0 开始的(而不是 1)。那么,如何通过下标表示每个数组元素的呢?通过“数组名[下标]”的方式。例如“int a[5];”表示定义了有 5 个元素的数组 a,这 5 个元素分别为 a[0]、a[1]、a[2]、a[3]、a[4]。其中 a[0]、a[1]、a[2]、a[3]、a[4] 分别表示这 5 个元素的变量名。

如果从 1 开始,那么数组的第 5 个元素就是 a[5],而定义数组时是 int a[5],两个都是 a[5] 就容易产生混淆。而下标从 0 开始就不存在这个问题了!所以定义一个数组 a[n],那么这个数组中元素最大的下标是 n–1;而元素 a[i] 表示数组 a 中第 i+1 个元素。

另外,方括号中的常量表达式可以是“数字常量表达式”,也可以是“符号常量表达式”。但不管是什么表达式,必须是常量,绝对不能是变量。

C 语言不允许对数组的长度进行动态定义,换句话说,数组的大小不依赖程序运行过程中变量的值。非通常的情况为动态内存分配,此种情况下数组的长度就可以动态定义。

扩展资料:

数组特点

1、数组是相同数据类型的元素的集合。

2、数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。

3、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

参考资料来源:百度百科-数组

回答2:

int a[][];第一个中括号表示有此二维数组有几行,第二个表示有几列;
故int a[][3]={1,2,3,4,5,6,7};说明此数组有n行,3列;也就是说每行有三个元素,所以第一行有1,2,3 这三个元素,第二行有4,5,6三个元素,第三行有7这个元素,不足的两个元素由0来补足
故此定义下数组a第一维的大小是3

回答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;iint a[5]; //定义为全局性质的数组void main(){ int i; for(i=0;i { printf("-",a[i]); } printf("
");}。

回答4:

3

回答5:

3,调试一下就知道了