在 C 中应用具有未初始化变量的 XOR 运算符

Applied XOR operator with an uninitialized variable in C

我有点困惑。据我所知,如果你在 C 中声明 uninitialized 变量,那么它的值是不确定的。

If you don’t initialize an variable that’s defined inside a function, the variable value remain undefined.That means the element takes on whatever value previously resided at that location in memory.

如果我将 ^(XOR) 运算符应用于未初始化的整数变量本身。喜欢,

#include <stdio.h>

int main()
{
        int a;
        printf("%d\n", a^a);
}

很明显a^a应该是因为只有当我们有两个零或两个一时结果才为零 .所以,我有一个问题:这是未定义的行为吗?

是的,这是未定义的行为。

尝试使用具有不确定值的变量

  • 可以有陷阱表示
  • 地址未被占用

会导致 undefined behavior.

是的,这是未定义的行为。只是声明而不是初始化变量,用垃圾值填充变量。