使用类似
int i = 1; +-+-+i;
这样的表达式是否符合标准,并且如何确定变量i的符号?
你的操作符没有副作用,+i 对于整数本身不会有任何影响,而且你没有使用临时生成的值,但删除不起作用的 +,然后你就得到了等同于 i 自身的 -(-i)。(在代码中删除 + 将转换操作符,我的意思是在计算中删除它,因为它没有效果)
+i
+
i
-(-i)
是的。一元+和-从右往左进行相互关联,所以这个表达式被解析成为
-
+(-(+(-(+i))));
这导致结果是1。
1
请注意,这些运算符可能被重载,因此对于用户定义的类型,答案可能不同。
用户名或邮箱地址
密码