C语言中一维数组的最长维数是多少?谢谢!
发布网友
发布时间:2022-05-27 07:51
我来回答
共5个回答
热心网友
时间:2023-10-12 03:05
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的。
}
热心网友
时间:2023-10-12 03:05
int 的最大值 是32767 声明一个int型的一维数组 其最大元素个数就是其定义类型的最大取值范围吗?我也是不太明白。。
但是我在DEV C++中这样写了个程序
#include <stdio.h>
main()
{
int a[327670];
a[327670]=9;
printf("%d",a[327670]);
getchar();
}
显示9
我也不明白了
热心网友
时间:2023-10-12 03:06
什么是一维数组的最长维数??请说清楚!!
热心网友
时间:2023-10-12 03:06
65535
热心网友
时间:2023-10-12 03:07
32767