C和C ++ 中的几个一元运算符

27 浏览
0 Comments

C和C ++ 中的几个一元运算符

使用类似

int i = 1;
+-+-+i;

这样的表达式是否符合标准,并且如何确定变量i的符号?

admin 更改状态以发布 2023年5月21日
0
0 Comments

你的操作符没有副作用,+i 对于整数本身不会有任何影响,而且你没有使用临时生成的值,但删除不起作用的 +,然后你就得到了等同于 i 自身的 -(-i)。(在代码中删除 + 将转换操作符,我的意思是在计算中删除它,因为它没有效果)

0
0 Comments

是的。一元+-从右往左进行相互关联,所以这个表达式被解析成为

+(-(+(-(+i))));

这导致结果是1

请注意,这些运算符可能被重载,因此对于用户定义的类型,答案可能不同。

0