C语言问题: printf("%d %d %d %d\n",i,j,m=++i,n=j++);#includeint main(void){ int i=8,j=10,m=0,n=0; printf("%d %d %d %d\n",i,j,m=++i,n=j++); return 0;} 运行结果是9 10 9 10为什么是这个答案,不理解.(因为我自己觉得答案

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 18:23:38
C语言问题: printf(

C语言问题: printf("%d %d %d %d\n",i,j,m=++i,n=j++);#includeint main(void){ int i=8,j=10,m=0,n=0; printf("%d %d %d %d\n",i,j,m=++i,n=j++); return 0;} 运行结果是9 10 9 10为什么是这个答案,不理解.(因为我自己觉得答案
C语言问题: printf("%d %d %d %d\n",i,j,m=++i,n=j++);
#include
int main(void)
{
int i=8,j=10,m=0,n=0;
printf("%d %d %d %d\n",i,j,m=++i,n=j++);
return 0;
}


运行结果是9 10 9 10
为什么是这个答案,不理解.(因为我自己觉得答案是8 10 9 10)

C语言问题: printf("%d %d %d %d\n",i,j,m=++i,n=j++);#includeint main(void){ int i=8,j=10,m=0,n=0; printf("%d %d %d %d\n",i,j,m=++i,n=j++); return 0;} 运行结果是9 10 9 10为什么是这个答案,不理解.(因为我自己觉得答案
printf函数在打印的时候先会计算出后面所有的表达式后再输出到标准输出上,后面的逗号表达式为i,j,m=++i,n=j++;i初始化为8,j初始化为10,m=++i(i先加变为9赋值给m,所以i为9,m为9),n=j++(j先赋值后再加,所以n是10,j也是10).也许你会问j加了为什么不是11,这取决你的编译器(i++,和++i)在什么时候,我的编译器上j就会变成11.你的就是先打印了再j加了,你可以再后面加一句打印一下j的值.也许就是11.好了,就这样了.