3 回答
TA贡献2036条经验 获得超8个赞
根据6.3.2.1/2显式未定义 a
其地址从未被取走(引用如下) 它可能是陷阱表示(当访问UB时会导致UB)。6.2.6.1/5:
某些对象表示不需要表示对象类型的值。
a
如果lvalue指定可以用寄存器存储类声明的具有自动存储持续时间的对象(从未使用其地址),且该对象未初始化(未使用初始化器声明,且未在使用前对其执行赋值),则行为未定义。
x
没有陷阱表示的系统:&x;
在所述条件下未初始化的值似乎会更改其值。 因此,对不确定值执行的任何操作都将具有不确定值。 当对不确定值使用时,库函数将显示出未定义的行为。 这些答案适用于所有没有陷阱表示的类型。
int a; &a; int b = a - a;
b
if ( j != j ) foo();
TA贡献1852条经验 获得超7个赞
unsigned char
a - a
a - a
- 3 回答
- 0 关注
- 427 浏览
添加回答
举报