8. 以下代码能够编译通过吗,为什么?[C++易]
unsigned int const size1 = 2;
char str1[ size1 ];
unsigned int temp = 0;
cin >> temp;
unsigned int const size2 = temp;
char str2[ size2 ];
答:在vc2008下编译,str2定义出错,size2非编译器期间常量,而数组定义要求长度必须为编译期常量。
在g++下编译,程序没有错误。是不是就可以用来运行期定义数组了。
本文探讨了在C++中尝试使用运行期变量定义数组长度的可能性。在VC2008环境中,由于编译期常量的要求,此操作无法成功。然而,在g++下则可以编译通过,提示我们对于编译器的不同行为需要有所了解。
1274

被折叠的 条评论
为什么被折叠?



