在编译器里,每种类型的变量定义数组的时候都有一个数组大小,而这个大小对于不同的变量而言有不同的上限,这里的最大长度更准确的来说应该是系统堆的最大值。
字符类型数组
一个字符占1byte大小,八位,所以,理论上,在一个64位的编译器中,一个字符数组的最大长度是2147483648,但之际上,经过我的手敲,能开的最大长度是2146793727
char s[2146793727];
字符串类型数组
字符串类型数组就像是二维的字符类型数组,本人亲测,一个字符串能存储4049个字符(多了会卡死),但字符串类型的数组最大长度为268349215有点离谱
string b[268349215];
int 类型数组
一个int类型的变量占4个字节,是字符的四倍,所以int类型数组的最大长度大概是字符类型的四分之一,为536698431
int a[536698431];
long long类型数组
一个long long类型的变量占8个字节,所以longlong类型数组的最大长度大概是268349215
long long c[268349215];
浮点数
float和double类型的变量就像是int和longlong,而数组最大长度也分别和int和longlong相同
为536698431和268349215
float e[536698431];
double f[268349215];
布尔类型
布尔类型的变量也只占一个字节,所以数组最大长度和char一样为2146793727
bool d[2146793727];
总结
以上总结的各类型数组最大长度仅为最大能编译的长度,可能会因编译器的不同而不同,同时,一个程序里只能开一个这么大的数组,虽然能成功编译,
编辑
但不能运行
标签:int,c++,干货,long,数组,类型,长度,268349215 From: https://www.cnblogs.com/UncleSamDied6/p/17819481.html