c语言中数组的第一维的大小是多少

Python012

c语言中数组的第一维的大小是多少,第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的第二个元素,以此类推。

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

比如: int a[15]

那就是 sizeof(a) 测出a的字节长度 , sizeof(int)测出int的长度,然后sizeof(a)/sizeof(int) 就是数组长度

ANSI C89标准中规定,一个数组的尺寸(下标)必须是一个整型常量表达式以便于在编译时计算大小,而这里的所谓常量(或者常量表达式的运算结果),一般是指unsigned int。

16位编译器(比如Turbo C)中,unsigned int为16位,因此数组最多32767个数据。

32位编译器(比如Visual C++ 6.0)中,unsigned int为32位,因此数组最多4294967295个数据。

以上结论为理论值。

实际上,在VC++中,我们定义一个259025元素的整型数组,虽然可以编译通过,但是我们仍将得到一个运行时错误(runtime error)。这主要跟堆和栈的大小有关,详细情况请查阅操作系统相关资料。

错误代码范例:

// VC++ 6.0 中

void main()

{

int a[259025]// 运行时错误,259024是ok的。

char b[259025]// ok。

char c[1036097]// 运行时错误,1036096是ok的。

}

// TC2.0 中

void main()

{

int a[32768]// 编译错误,32767是ok的。

char b[65536]// 编译错误,65535是ok的。

}