c++ - 未初始化的本地字符的行为?

标签 c++ gcc char undefined

如果你有一个未初始化的本地 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/

相关文章:

c++ - c和c++中函数指针转换的区别

c++ - 如何将 pragma weak 与命名空间函数一起使用?

c - 返回函数内部释放的指针

将数组中的元素 i 复制到另一个数组

c++ - 如何将 System::WideString 转换为 char*,反之亦然?

检查一个字符是否等于\in C

c++ - URLDownloadToFile 失败并返回 0x800c0008 (INET_E_DOWNLOAD_FAILURE),具体取决于 URL 的长度

c++ - 友元和运算符重载帮助

c - gcc -W 警告标志

c++ - 访问负像素值 OpenCV