在 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.
是的,这是未定义的行为。只是声明而不是初始化变量,用垃圾值填充变量。
我有点困惑。据我所知,如果你在 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.
是的,这是未定义的行为。只是声明而不是初始化变量,用垃圾值填充变量。