编译期常量和非编译期常量
(2009-04-07 16:20:54) unsigned int const size1 = 2;
char str1[size1];
unsigned int temp = 3;
cin >> temp;
unsigned int const size2 = temp;
char str2[size2];
在VS2005中运行,出现如下错误提示:
error C2057: 应输入常量表达式
error C2466: 不能分配常量大小为 0 的数组
error C2133: “str2”: 未知的大小
答案:str2定义出错,size2非编译期常量,而数组定义要求长度必须为编译期常量。