c语言问题

[复制链接]
查看11 | 回复4 | 2010-10-30 11:16:49 | 显示全部楼层 |阅读模式
请问在c语言中为什么这两个程序的执行结果是一样的(如图)


回复

使用道具 举报

千问 | 2010-10-30 11:16:49 | 显示全部楼层
printf("%d",i++)printf("%d",++i)是不一样的因为是涉及到先后使用i的问题的,i++是先打印i在加1,++i是先加一后打印i,但是最终的结果是i的值是一样的,所以在你的程序中i的变化是一样的,也就结果相同了!相信你应该明白了吧,i++,++i不同的地方在于输出的时在内部情况。 你的第一个程序是先打印i 在i加1第二个程序是先打印i同样i加1
回复

使用道具 举报

千问 | 2010-10-30 11:16:49 | 显示全部楼层
#include "stdio.h"main(){ int i=1; for(i=1;i<=10;++i)printf("%d\n%d\n",i,i++);}执行一下这个程序可知for循环中为++i时,输出语句是先执行后面的(i++)的,但输出却是先输出前面的(i)的。
回复

使用道具 举报

千问 | 2010-10-30 11:16:49 | 显示全部楼层
其实for(i=1;i<=10;i++) / for(i=1;i<=10;++i) 都等效为:int i=1;while(i<=10){.....i++;//或者++i;}执行完i++或者++i,再判断是否<=10所以效果是一样的....只是人们习惯用i++;
回复

使用道具 举报

千问 | 2010-10-30 11:16:49 | 显示全部楼层
++i和i++虽然这两个表达式的值不一样,但是for循环的第二步是判断i是否小于等于10,比较对象是i。++i和i++都使得i的值自增1,所以在这里是等效的,当然运行结果也一样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行