c - 自动变量初始化为零

标签 c

#include<stdio.h>
int main()
{
    int x;
    printf("%d\n", x);
    x=x>0?x:x+1;
    printf("%d\n", x);
}

这里x被初始化为0,但是为什么呢?在GCC中编写并编译代码

最佳答案

使用未初始化的变量会导致未定义的行为。一个编译器可能会将变量初始化为 0,但如果您更改编译器,甚至更改编译标志(例如使用不同的优化级别),这种情况很容易发生变化。

不要指望它。

关于c - 自动变量初始化为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29203399/

相关文章:

c - C : "(void)ptr;" 这个语句是什么意思

c - VGA编程中的 "scan"是什么?

C 预处理器令人困惑的行为

c - 多进程如何绑定(bind)到一个udp端口

c - 如何处理C中的溢出

c - 将时间值作为用户的输入,并在多个线程中调整等于该时间的延迟

c - 在 Mac 上安装 flex(词法分析器)

c - 包含 Windows h (C) 时需要一个标识符

C - 整数 var 的假值

c++ - 为什么要比较 Unsigned Int >= 0 a "Pointless Comparison"?