在C语言中,以下程序运行输出的结果是什么,怎么算的?

main ( )
{
int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}

第一行printf,m++是先输出原m值12,后进行++为13,++n先++为35,输出35,故第一行输出结果为12 35;
第二行printf,n++也是输出上面改变后的n的值35,再++,++m先++为14(上面m已改变为13,再++),输出14,第二行输出为35 14
以上,如此,希望看得明白追问

嗯嗯,懂了,还有一个问题:
main( )
{
char c1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2 - -);
printf("%c%c",c1,c2);
printf("\n");
}
这个程序是个什么意思啊,应该怎么解答呢

追答

这个小程序其实跟上面的类似,不过是多了个for循环,声明c1和c2,然后看for语句,c1=0,c2=9,此处c1和c2赋值0和9,(注意有' ')c1<c2,符合,执行后面的,c1++和c2--,直到c1<c2不成立,for结束,输出最后的c1和c2.分别为5,4
附:多编写,多运行,就会思考,就会理解,开始可能是比较抽象

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-18
12 35 35 14
m++先用后++,所以m++的值为12,之后m的值变为13
++n是先++后用,所以++n的值为35
下面同理追问

那为什么不是12 35 36 14或者12 35 35 13呢?

追答

下面那个printf跟上面一样啊,第一个printf完后,m,n的值已经变成13,35

追问

那如果第一个完了以后n变成35了,那n++就应该是36啊??

追答

第一个之后n的值是变成35了,都说了n++是先用后++的,也就是n++的值还是35,之后n的值才变为36,你要输出的是n++,所以当然是35 了

本回答被网友采纳
第2个回答  2012-09-20
在输入输出时按先右后左来进行的,且当为前++时为逐步自增和取值的,
相似回答