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