如果你有一个未初始化的本地 int
,那么它会得到一个未定义的值,但是如果你有一个本地 char
变量,那么它应该没有未定义的值还有吗?当然 0 可能是未定义的值,但我想知道 char 是否有任何不同,因为我找到的所有相关信息都是关于 int
并且当 char 变量被转换为 an 时,下面的程序只输出 0诠释。我正在使用没有标志的 GCC 4.7。
int main()
{
char test1;
int test2;
std::cout<<test2; //garbage
std::cout<<std::endl;
std::cout<<(int)test1; //0
return 0;
}
最佳答案
Uninitialised 表示真正未初始化。仅仅因为您在特定时间始终在您的机器上获得特定值,并不意味着在所有机器上始终如此。
您可以通过转储函数的汇编代码并检查它来验证没有任何东西正在初始化您的变量。
关于c++ - 未初始化的本地字符的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12967352/