+variable
如何运作或+(+variable)
如何运作?
int i=0;
while(+(+i--)!= 0){
// do
}
答案 0 :(得分:6)
它被称为unary plus operator,它有(almost) no effect on its argument。
默认情况下,它仅将其参数提升为int
。但是,在您的示例中,i
已经是int
,+i
实际上是无操作。
请注意,对于C ++中的自定义类(不是Java或C),它还可能会重载。
答案 1 :(得分:2)
表达式+variable
的值与variable
的值相同。一元+
运算符既不会更改表达式的值,也不会更改变量的值。
答案 2 :(得分:0)
+运算符都是一元运算符,用于符号目的,不会影响 - (递减运算符)的任何功能。
答案 3 :(得分:0)
查看它的最简单方法是运行它并尝试一下。
使用i = 9
,它打印了8,7,6,5,4,3,2,1,0。
逻辑上,它在执行i != 0
检查后但在代码运行之前会减少。
你会发现,这是while(i-- != 0)
的同义词,它符合+事实上不影响你的代码的事实。
当然,在单个表达式中处理单个变量的多个运算符时,通常会得到未定义的代码;代码可能在不同的编译器上运行不同。为此,您可能不应该尝试使用任何令人困惑的代码。