【发布时间】:2011-10-01 23:52:13
【问题描述】:
在 C 中,可以这样写:
int foo = +4;
但是,据我所知,+4 中的一元加号 (+) 是无操作的。是吗?
【问题讨论】:
-
不完全相同,但相关:stackoverflow.com/questions/727516/…
-
msdn.microsoft.com/en-us/library/s50et82s.aspx "括号中表达式前面的一元加运算符强制对封闭运算进行分组。它用于涉及多个关联或交换二元运算符的表达式。操作数必须具有算术类型. 结果是操作数的值。整数操作数进行整数提升。结果的类型是提升的操作数的类型。"
-
K&R 说它只是为了在标准中添加对称性。
-
@Jeremy:有。例如。它说
+short(1)的类型为int,而不是short。 -
@TimS.: "括号中表达式前面的一元加号运算符强制对封闭运算进行分组" -- 哦?强制分组的是括号,而不是
+。
标签: c expression evaluation unary-operator