遇到C问题并理解编译器如何处理此代码
#include <stdio.h>
int j=0;
int main(int argc, char *argv[]){
printf("%d %d %d %d %d\n",j++, j*5, j++, j++, j);
}
嗨,好吧基本上我想了解这里发生了什么?
当我编译并运行时,我得到了这个结果
2 10 1 0 0
我不清楚编译器究竟在做什么,为什么数字会这样改变?首先要做哪一个,为什么有些报告0,而其他2报告3?
答案 0 :(得分:0)
正在处理这些条目。我不是100%,但我认为没有设置printf()语句的参数处理顺序,因此结果是不可预测的(从编译器到编译器)。