C语言printf中的问题

我用的是VC6.0,执行出来是下图1111100.理论上从右算的结果是1001100.....求大神解释#include<stdio.h>intmain(){inti;i... 我用的是VC6.0,执行出来是下图
1111100.理论上从右算的结果是 1 0 0 1 1 0 0.....求大神解释
#include<stdio.h>
int main ( )
{ int i ;
i=1;
printf("1)i=%d; 2)i=%d; 3)i=%d; 4)i=%d; 5)i=%d; 6)i=%d; 7)i=%d;\n", i, i++, i , i--,++i, i, --i);
}
展开
 我来答
百度网友006959291
2013-01-19 · TA获得超过222个赞
知道答主
回答量:198
采纳率:0%
帮助的人:181万
展开全部
按从右往左:
7:--i // i=0
6:i // i=0
5:++i // i=1
4 ~ 1://i=1
然后函数printf执行完毕
再执行i--,i++。

你要知道的是 后 ++ 和 后 -- 是在函数执行完了之后才执行的 。
追问
后 ++ 和 后 --  什么意思?你的意思是从右往左执行一遍以后 再把i的值代入i++,i--里再运行一遍?实在不太明白,你能加我QQ:398126362 解释一下么?
追答
printf("1)i=%d; 2)i=%d; 3)i=%d; 4)i=%d; 5)i=%d; 6)i=%d; 7)i=%d;\n", i, i++, i , i--,++i, i, --i);

你的那个 printf 语句相当于这样:
printf("1)i=%d; 2)i=%d; 3)i=%d; 4)i=%d; 5)i=%d; 6)i=%d; 7)i=%d;\n", i, i, i , i,++i, i, --i);
i--;
i++;
就是说后++和后-- 在printf的时候并没有执行,是在printf之后执行的,而前++和前--是在调用之前就执行。
伊·梵beec
2013-01-19 · TA获得超过2160个赞
知道大有可为答主
回答量:1897
采纳率:0%
帮助的人:1381万
展开全部
弄清楚i++和++i的区别就好了
int i=0;
int a=++i;//a=1
int b=i++;//b=1
int c=i;//c=2

别纠结一个语句中多个++了,不同的编译器,结果可能就不同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式