C语言中的printf("%d%d\n",i,++i);其中的%d%d?

书上的描述是:在输出语句中改变输出变量的值,如:i=5;printf("%d%d\n",i,++i);则不能保证先输出i的值,然后再求i++的值,书上的这段文字怎么理解?... 书上的描述是:在输出语句中改变输出变量的值,如:i=5;printf("%d%d\n",i,++i);则不能保证先输出i的值,然后再求i++的值,书上的这段文字怎么理解?求问大侠,感谢! 展开
 我来答
赵德贤520
2012-05-17 · 超过13用户采纳过TA的回答
知道答主
回答量:48
采纳率:100%
帮助的人:32.5万
展开全部
++i与i++区别?
++i:先加1,再参与运算
i++:先运算,再加1
(你可以输出下列的代码 看看执行效果就明白了)
#include <stdio.h>
main()
{
int i=4,j=8,m,n;
m=i++;//先把i的值赋给m。修改i的值,使其加1 m=4 i=5
n=++j;//n=9 j=9
printf("%d %d %d %d ",i,j,m,n,);//i=5 m=4
}
或者你可以对比
n=j++;//n=9 j=9
printf("%d ",n);
printf("%d",j++);
hankongtingyue
2012-05-17
知道答主
回答量:16
采纳率:0%
帮助的人:8.4万
展开全部
printf函数的执行顺序是自右向左的 所以先进行自加运算再进行输出 结果为6 6.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5843148
2012-05-15 · TA获得超过188个赞
知道小有建树答主
回答量:633
采纳率:0%
帮助的人:236万
展开全部
%d是控制符,控制你输出的是十进制的整型

不能保证的原因是大多的编译器printf运算的顺序是 自右向左。
追问
printf运行的顺序是自右至左?不应该是自左中右吗?这样编译器有关吗?
追答
是的,你可以百度搜索一下相关资料了解一下。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DAITAOHAO
2012-05-20
知道答主
回答量:20
采纳率:100%
帮助的人:10.2万
展开全部
只要是因为逗号运算符使语句执行,从右往左执行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式