永发信息网

为什么VC++6.0中 i=i++与i=++i结果相同

答案:4  悬赏:50  手机版
解决时间 2021-04-01 12:53
为什么VC++6.0中 i=i++与i=++i结果相同
最佳答案
两个情况是不同的问题。
i=++i; 在执行的时候就先+1了,结果增加了1;i=i++;赋值的时候没有+1,但赋值结束后i++,结果同样增加了1;这个不必纠结。
for语句中,第一个条件是在所有语句之前执行,因此你++i还是i++都是执行了之后才去做其它语句,结果当然一致;第三个条件,在每次循环结束后“单独”执行,和条件一是一个情况,不会和其它语句干扰。
需要注意的是,前置后置加法,只针对当前语句有顺序问题,如果你for语句的第二个条件变成:
n>i++

n>++i
效果就不一样了。
全部回答
如果一开始i为2,那么,
i=i++相当于:i = i(i等于2); i = i + 1(i等于3);
i=++i相当于:i = i + 1(i等于3); i = i(i等于3);
结果当然一样拉。追问那为何a=i++与a=++i就不一样呢?
1)i=i++是未定性行为,不同的编译器结果不同。
2)for(i++;i<=n;++i)中,各个分号都是一个顺序点,i++和++i效果一样。i++的效果在顺序点结束之前实现。这句就好比 a=i++;a=++i;行为清晰。
嗯。你自己不都解答了麽。。。
a=i++; 分解为 a=i; i++;
同理,i=i++; 分解为 i=i; i++;
a=++i; => ++i; a=i;
同理,i=++i; ++i; i=i;
for(i++;i<=n;++i)可以转化为:
i++;
while(i<=n)
{
// todo something
++i;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
excel 中的x轴怎么自定义,怎么让修改图中X轴
孩子究竟有多需要爸妈陪伴
骄阳的含义
因为汤放久了,长出的蛆进入了喉咙怎么办
最小的小型鸡粪烘干机日产量几吨呀,价格多少
没有风险告知书,律师合同成立吗
欧洲码9号半的鞋是中国多少码?
EQ和EI都是情商的意思么
国外试管哪家强?
我在南京江宁想到眙盱请问坐车该怎么走
我身高153体重100斤,我胖吗
一座大桥大约长1.68千米,轻轨如果用70千米1
增城时代天启近地铁吗?时代天启好不好
甲方将一个工程分包给a公司,a公司又分包给我
分析怦然心动经典台词中一句: Some of us ge
推荐资讯
ps中级教程 ps如何把两张图片合成一张
有一款车叫拉达?是什么车啊?
Excel中怎么限制某些单元格不能修改
我有10万美元没有结汇,现在汇率人贬值500个基
紫燕呢喃楼稳处,穿帘入幕断分飞,楼空百尺东风
工作室开业祝福语怎么写?
远处传来美妙动听的钢琴声,寻声而去,其()
女人出轨对不对?
初二物理:一天,小明注意到家中的灯泡比平常
问下山东临怡紫橙孵化基地有在那被骗的吗我想
琥珀蜜蜡可以直接食用吗
魔兽世界7.0怎么获取pvp装备
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?