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

时间:2017-03-16 06:08:55

标签: c bitwise-operators undefined-behavior xor

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

  

如果没有初始化函数内定义的变量,   变量值保持未定义。这意味着元素接受   以前住在记忆中该位置的任何值。

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

#include <stdio.h>

int main()
{
        int a;
        printf("%d\n", a^a);
}
很明显,a^a,因为只有当我们有两个零或两个时,结果才为零。所以,我有一个问题:是不确定的行为?

2 个答案:

答案 0 :(得分:1)

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

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

  • 可以有陷阱表示
  • 没有使用它的地址

将导致undefined behavior

答案 1 :(得分:1)

是的,它是未定义的行为。只是声明并且不初始化变量,用变量填充变量。