C语言中一维数组的最长维数是多少?谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/31 21:51:30
多谢了!
哦,写错个字!
是最大能容纳的数据个数是多少?

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的。
}

什么是一维数组的最长维数??请说清楚!!

32767

32767

int 的最大值 是32767 声明一个int型的一维数组 其最大元素个数就是其定义类型的最大取值范围吗?我也是不太明白。。
但是我在DEV C++中这样写了个程序
#include <stdio.h>
main()
{
int a[327670];
a[327670]=9;
printf("%d",a[327670]);
getchar();