不同之处在于增量运算符 ++ 出现在变量之前或变量之后 [重复]

Posted

技术标签:

【中文标题】不同之处在于增量运算符 ++ 出现在变量之前或变量之后 [重复]【英文标题】:What makes the difference is the increment operator ++ comes before the variable or after the variable [duplicate] 【发布时间】:2016-05-19 02:45:51 【问题描述】:

在下面的代码中,当我将 ++ 运算符放在“tos”之后时,我收到一个错误。但是如果我把它放在'tos'之前,代码就会运行。为什么会这样?

void push(int item)
if(tos==9)
    System.out.println("The stack is full");
else
    stck[++tos]=item;

【问题讨论】:

【参考方案1】: ++tos 表示递增 tos 然后返回 expression 值。 tos++ 表示返回 expression 值,然后递增 tos。

【讨论】:

【参考方案2】:

a++ 将返回 a 并递增它,++a 将递增 a 并返回它。

http://www.sanity-free.com/145/preincrement_vs_postincrement_operators.html

【讨论】:

【参考方案3】:

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

示例:

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 或 google post increment 和 pre increment in java。

【讨论】:

以上是关于不同之处在于增量运算符 ++ 出现在变量之前或变量之后 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java——变量自增(++)自减(--)

Matlab中的persistent变量

算法笔记异或运算的奇妙之处

static和const变量有什么区别?

后增量运算符直到评估后才增加变量[重复]

ThreadLocal原理