【问题标题】:What is the difference between (++c) & (c++)? [duplicate](++c) 和 (c++) 有什么区别? [复制]
【发布时间】:2016-01-30 23:24:02
【问题描述】:

(++c)和(c++)有什么区别?

让我们说 c = 4

我知道对于 (++c),您会将 4 递增 1 所以 5,但是对于 (c++)?

【问题讨论】:

  • 这是一个应该在你脑海中敲响并让你思考的问题之一 - 让我试试......

标签: java operators increment


【解决方案1】:

c++ 和 ++c 都会递增它们所应用的变量。 c++返回的结果是变量自增前的值,而++c返回的结果是变量应用自增后的值。

示例:

public class IncrementTest{
public static void main(String[] args){

    System.out.println("***Post increment test***");
    int n = 10;
    System.out.println(n);      // output  10
    System.out.println(n++);    // output  10
    System.out.println(n);      // output  11

    System.out.println("***Pre increment test***");
    int m = 10;
    System.out.println(m);      // output  10
    System.out.println(++m);    // output  11
    System.out.println(m);      // output  11
}
}

欲了解更多信息,请阅读:http://www.javawithus.com/tutorial/increment-and-decrement-operators 或者谷歌在java中发布增量和预增量。

【讨论】:

  • 其实这是误导。 c++++c 是返回值的表达式。这不是 2 个陈述。 c++ 只返回 previous 值,而 ++c 返回 updated 值。您应该链接 Java 语言规范的相关部分:在这个主题上非常清楚(例如 15.14.2)。
  • 我注意到你编辑了“表达”,但它仍然具有误导性。没有“首先执行表达式,然后将值加一”。 c++ 是表达式。 c 加 1。该表达式返回一个值,即 c 的前一个值。
  • @Tunaki 让我想一想反对意见是什么。请稍等。
  • 好吧,您仍然有“首先...然后”的概念,这是不正确的:“首先评估表达式,然后将值加一”。我认为您应该仔细阅读有关此的规范以清除您的头脑:)。它易于阅读:Postfix Increment OperatorPrefix Increment Operator
  • 这取决于你所说的“步骤”。从技术上讲,它是字节码级别的指令。第一步是“增加c”,第二步是“返回值”。这是变化的第二步(增量之前或之后的值)
猜你喜欢
  • 2010-11-01
  • 2018-07-18
  • 2014-09-03
  • 1970-01-01
  • 2021-04-23
  • 2015-08-07
  • 2023-04-08
  • 2011-04-05
  • 1970-01-01
相关资源
最近更新 更多