【发布时间】:2012-10-19 04:21:20
【问题描述】:
如果你有一个未初始化的本地int,那么它会得到一个未定义的值,但是如果你有一个本地的char 变量,它是否也应该没有一个未定义的值?当然 0 可能是那个未定义的值,但我想知道 char 是否有任何不同,因为我找到的所有相关信息都是关于 int 并且当 char 变量转换为 int 时,下面的程序只输出 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;
}
【问题讨论】:
-
对于内置类型,您未初始化的本地包含未指定的值。使用它会产生未定义的行为。
-
我一直get 8,这就像一直得到0一样毫无意义。
-
@underscore_d 您无法区分
char和unsigned char