任何机构都可以解释它+(+ i--)

时间:2015-03-05 06:41:44

标签: java c++ c

+variable如何运作或+(+variable)如何运作?

int i=0;
while(+(+i--)!= 0){
     // do 
}

4 个答案:

答案 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)的同义词,它符合+事实上不影响你的代码的事实。

当然,在单个表达式中处理单个变量的多个运算符时,通常会得到未定义的代码;代码可能在不同的编译器上运行不同。为此,您可能不应该尝试使用任何令人困惑的代码。