永发信息网

c语言中for(i = 1;i<10;++i)和for(i = 1;i<10;i++)有区别么?我试了一下,对运行结果没影响

答案:5  悬赏:20  手机版
解决时间 2021-11-16 01:26
c语言中for(i = 1;i<10;++i)和for(i = 1;i<10;i++)有区别么?我试了一下,对运行结果没影响
最佳答案
效果是一样的,for(i=1;i<10:++i) 是一个结构,并不是一个单一的语句或表达式
i=1是在循环开始前的初始化, i<10是每次循环开始前的验证, ++i是在一次循环结速后才运行的。

这是,++i和 i++都作为一个语句来用,那么基本上没区别了,旧的编译器可能会给出效率不同的编译结果,但现在的编译器,可能只是把它转为 i = i+1来执行了,区别只是这一句插在原语句的前面还是后面,而++i作为单语句,那就是
i += 1;
i;//拿去用
而i++是
i;//拿去用
i+=1;

对于这个for循环,要的都是i 自增,所以没区别
全部回答
for(i = 1;i<10;++i)和for(i = 1;i<10;i++),这里面i的都是一样,没区别,区别的是i++,和++i的值不一样。
i++(在使用i之前先使i+1);++i在使用I后i再加1;
例如i=3;
printf("%d",++i);
输出结果是4;
若改为
printf("%d",i++);
输出结果是3。追问谢谢 明白了
++i是i自增1再去用i i++是先用i的值再将i自增1
他们两者对于独立的语句无区别如:
++i; 和 i++;是一样的
但a=++i和a=i++就不同
若i的值为12,则a=++i的a值为13 a=i++就是a=12

for(i = 1;i<10;++i)
{语句1;}
等同于:
1、i=1;
2、判断i<10,若不成立就退出循环
3、语句1;
4、++i; 此为独立的一个语句,并没直接用i的值(在下一个语句才判断i的值)
5、回到第二步追问谢谢 明白了
没区别一样的。
因为for循环条件测试的顺序是这样的:
先执行,第一个分号前的初始化语句(可能没有),只会执行一次。立马执行第二个条件测试语句,如果为真进入循环体执行代码。
代码执行完成后,先执行第二个分号后的语句,然后测试第一个分号后的条件语句。
通过上面过程,无论是++i,还是i++他两的值均是已经被+1后进行的测试。
因此是等效的。
个人习惯写那种方式。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
萧亚轩歌曲一首快歌 歌词里有谁把什么的节奏
我的老公是谁
C4D鼠标中键失灵 怎么解决??
滨江农村合作银行(团城山支行)地址在哪,我要
泪水开头的词语接龙
四驱车为什么把轮子设计在车身外
零壹跆拳道俱乐部地址在什么地方,想过去办事
我幸幸苦苦赚的钱,朋友们却总叫我出去玩,趁
铜棒还是铝棒呀,求解
patpat品牌的确有实力吗?
六一儿童节的由来50字
有关读完父子天堂的感受的好句段好句
优质合资板是什么意思
k960的四车九十五九十六号是不是靠窗
在合肥市区买房8千到1万每平还有哪些选择
推荐资讯
木质配件 报关 肯定要商检吗
这个魔方是什么鬼,怎么玩。。。
一大把年纪指多大
水果商店运来苹果0.5吨,比运来的橘子的百分之
秋冬天身上干燥很痒,怎么办
下列句子中,文言句式一致的一项是( )
魅族魅蓝5这手机有用吗
钢材今年还会掉价吗?
片石混泥土路肩套什么定额
我抱她她躲开了说做什么,我不抱了她过来问我
哪里可以看溏心风暴之家好月圆国语高清
今天晚上,国足加油,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?