C语言--请教!!

有下面的程序:voidmain(){inti=2;printf("\n%d%d%d",i++,i++,i++);}运行之后为什么是432???谢谢指点!!... 有下面的程序:
void main()
{
int i=2;
printf("\n%d%d%d",i++,i++,i++);
}
运行之后为什么是432???
谢谢指点!!
展开
 我来答
九名啊13
2009-07-06 · TA获得超过123个赞
知道小有建树答主
回答量:564
采纳率:0%
帮助的人:102万
展开全部
C 语言编辑器 的输出是 从左到右 来检测输出的。
杜博简Fq
2009-07-06 · TA获得超过164个赞
知道答主
回答量:406
采纳率:0%
帮助的人:0
展开全部
printf("\n%d%d%d",i++,i++,i++);
是从自右向左进行的 ,先把i输出,再自加给下次用,这样先输出2,然后i变为3,同理输出432
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陌默113
2009-07-06
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
i++,是从自右向左进行的
i++=i=2;但是此时i=3,
依次向左,i++=i=3,i变成4,依次再向左,
printf("\n%d%d%d",i++,i++,i++);
输出语句中,一个i++以一个%d输出,所以,对应着从左到右输出,变成了432
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
supersunkaiyua
2009-07-06 · TA获得超过770个赞
知道小有建树答主
回答量:415
采纳率:100%
帮助的人:220万
展开全部
看编译器运算机制了~
有的是从右向左运算:
就是i++,i++,i++;首先第3个i++,M是显示的时候是2。然后第2个i++,显示时是3。然后才是4。
显示的时候就成了,432
类似的如:i+++j+++k;
用括号写出他计算的顺序:
1:从右向左:i+(++(j+(++k)))
2:从左向右:(((i+)++j)+(++k)
所以不管怎么算,都是计算机的事。
为了解除这种计算机问题上的无奈,所以就有了第二种方法:
printf("%d",i++);
printf("%d",i++);
printf("%d",i++);
这与计算机或者编译器无关~很好~~很强大~~我喜欢~也建议你喜欢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彼岸花开未渡
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:11.4万
采纳率:2%
帮助的人:6838万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长上天妖1D
高粉答主

2019-11-15 · 醉心答题,欢迎关注
知道答主
回答量:15.3万
采纳率:5%
帮助的人:9116万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式