我想做这样的事情printf("%d,%d",array[c], array[c+1]),只有一个变量在每次迭代中都会增加.我写了下面的代码,我期待"1,2"到stdout,我错了:
#include <stdio.h>
int main()
{
int c = 1;
printf("%d,%d",c++,c++); /* 2,1 */
//printf("%d,%d",c,c++); /* 2,1 */
//printf("%d,%d",c++,c); /* 1,2 */
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试做printf("%d,%d",c++,c)和 printf("%d,%d",c,c++),我可以看到,有没有定义的"C++"语句的执行顺序.
有人可以解释我写的代码是如何编译的吗?为什么以及如何根据"c ++"语句的位置进行更改.