printf中++的问题

i初值8printf("%d%d",i++,i++);__________结果88printf("%d%d",++i,++i);__________结果109请高手解释一... i 初值8
printf("%d %d",i++,i++);__________ 结果 8 8
printf("%d %d",++i,++i);__________ 结果 10 9
请高手解释一下这是为什么
展开
 我来答
匿名用户
推荐于2017-09-12
展开全部
printf运算规则:
运算从右向左,输出控制符的赋值有左向右

i 初值8
printf("%d %d",i++,i++);
i++先处理表达式,后进行自增处理
所以在printf处理完毕后,才进行自增处理,所以输出的都是8

printf("%d %d",++i,++i);
++i先进行自增处理,后进行printf处理
由于printf运算从右向左,
所以先处理最右边的++i,得到9,
后处理前面的++i,得到10,
再进行printf处理,由于输出控制符的赋值由左向右,
所以10赋值给第一个%d,9赋值给第二个%d,
所以输出10 9
追问
i++是后自增 那为什么
i++,printf("%d\n",i);的时候i还是先加了再输出
我的意思是i++的++什么时候运行,规则是什么
追答
i++是表达式完毕后,再进行自增处理
i++,printf("%d\n",i);
这样当然是i++先处理,再处理prntf,这都两个独立语句了,还有什么可疑问的?
bing02022
2011-12-23
知道答主
回答量:42
采纳率:0%
帮助的人:20.9万
展开全部
i++是先用i原来的值,然后再加一
++i是先把原来的值加一了再用
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhichaojianer
2011-12-23
知道答主
回答量:42
采纳率:0%
帮助的人:12.6万
展开全部
后加加是先赋值在运算
前加加则是先运算后赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式