让我们先看一段代码
i = 1
printf("i is %d\n", i++); // prints "i is 1"
printf("i is %d\n", i); // prints "i is 2"
1.C语言标准引入了“顺序点”的概念,并且指出“应该在前一个顺序点和下一个顺序点之间对存储的操作数的值进行更新”。在C语言中有多种不同类型的顺序点,表达式语句的末尾是其中一种。在表达式语句的末尾,该语句中的所有自增和自减操作都必须执行完毕,否则不能执行下一条语句。
2.还有一些运算符(逻辑与、逻辑或、条件和逗号)对顺序点也有影响。函数调用也是如此:在函数调用执行之前,所有的实际参数必须全部计算出来。如果实际参数恰巧是含有++或–运算符的表达式,那么必须在调用前进行自增或自减操作。