【问题标题】:Can any body explain it +(+i--) [duplicate]任何人都可以解释它+(+ i--)[重复]
【发布时间】:2015-03-05 06:41:44
【问题描述】:

+variable+(+variable) 是如何运作的?

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

【问题讨论】:

  • 只是好奇,这是你的代码吗?如果是,为什么需要它?
  • 是Java还是C,还是C++?
  • 这是c,c++ 还是java
  • 我是从 C 的试卷中得到的
  • 那就不要标记你的问题 C++ 和 Java...

标签: java c++ c


【解决方案1】:

它叫做unary plus operator,它有(almost) no effect on its argument

默认情况下,它只将其参数提升为int。但由于在您的示例中i 已经是int+i 实际上是一个空操作。

请注意,它还可以为 C++(不是 Java 或 C)中的自定义类重载。

【讨论】:

  • 它对表达式有影响:它将整体提升应用于参数。
  • @juanchopanza 是的,添加了。
【解决方案2】:

表达式+variable 的值与variable 的值相同。一元 + 运算符既不会更改表达式的值,也不会更改变量的值。

【讨论】:

    【解决方案3】:

    两个 + 运算符都是一元运算符,用于符号目的,不会影响 --(减量运算符)的任何功能。

    【讨论】:

      【解决方案4】:

      查看它的作用的最简单方法是运行它并尝试一下。 使用i = 9,它打印了 8, 7, 6, 5, 4, 3, 2, 1, 0。

      从逻辑上讲,它的作用是在执行i != 0 检查之后但在代码运行之前递减 i。

      您会发现,这与 while(i-- != 0) 是同义词,这符合 + 实际上不会影响您的代码这一事实。

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

      【讨论】:

        猜你喜欢
        • 2020-09-21
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多