a+++a和a+a++区别

168 阅读1分钟

1.编译器的处理过程:

  1. push(a), a入栈(1)
  2. push(a++),即push(1),之后 a自增变成2
  3. result = pop()+pop(), 出栈两个操作数(1,1)相加,得到2

2.编译器的处理过程:

  1. push(a++), 即push(1),之后 a自增变成2
  2. push(a),即push(2)
  3. result = pop()+pop(), 出栈两个操作数(1,2)相加,得到3