请问下面程序的运行结果是什么?为什么?

#include<stdio.h>
int main()
{
int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
return 0;
}

输出结果:9,11,9,10
首先,声明了四个变量i,j,m,n
i赋值8;
j赋值10;
m等于i自增1。所以,m现在等于9,i等于9;
n等于j自增1。所以,n现在等于10,j等于11;
输出语句,格式化输出四个变量的值。
最后函数执行结束返回0
你可能会问,为什么m=++i,m等于9。而n=j++,n就等于10了(为什么n等于原来j的值没有+1),这是因为++的问题
变量名++ 是后计算
++变量名 是优先计算
比如你int a=i++;
就会先把i的值给a再将i进行自增
而int a=++i;
则会先将i进行自增,然后赋值给a
温馨提示:答案为网友推荐,仅供参考
相似回答