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

但理论上说,不是应该++i先执行一次么?貌似java中是这样的,请知道的回答?... 但理论上说,不是应该++i 先执行一次么?貌似java中是这样的,请知道的回答? 展开
 我来答
lyqf365
推荐于2017-10-25 · TA获得超过1185个赞
知道小有建树答主
回答量:1291
采纳率:100%
帮助的人:792万
展开全部
效果是一样的,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 自增,所以没区别
dttsw
2017-10-25 · TA获得超过1059个赞
知道小有建树答主
回答量:770
采纳率:88%
帮助的人:313万
展开全部
没区别一样的。
因为for循环条件测试的顺序是这样的:
先执行,第一个分号前的初始化语句(可能没有),只会执行一次。立马执行第二个条件测试语句,如果为真进入循环体执行代码。
代码执行完成后,先执行第二个分号后的语句,然后测试第一个分号后的条件语句。
通过上面过程,无论是++i,还是i++他两的值均是已经被+1后进行的测试。
因此是等效的。
个人习惯写那种方式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a2974d0dc
2013-03-02 · TA获得超过1673个赞
知道小有建树答主
回答量:769
采纳率:0%
帮助的人:628万
展开全部
++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、回到第二步
追问
谢谢   明白了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2015-09-14 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
这里的i+=2
就是i = i + 2
的简略形式。

在这里,
for(i=1;i<=10;i+=2)
i=1;是循环前的初始化。为进入循环作准备。

中间的i< =10;可是有点错误的:<和=必须连在一起,成为<=才是一个逻辑运算符,否则会出错的。当这个逻辑表达式的值为真时,就执行后面的循环体语句。
最后是循环体语句每次执行完成后执行的语句。比如这里的i+=2。这也可看作是为下一轮循环作准备的(这个语句也可以不写在这里,而是写在循环体的最后,全凭程序员个人习惯。不过直接修改循环控制变量的简短语句通常都是写在这里)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gui_happy
2013-03-02 · TA获得超过2091个赞
知道大有可为答主
回答量:4276
采纳率:42%
帮助的人:2950万
展开全部
for(i = 1;i<10;++i)和for(i = 1;i<10;i++),这里面i的都是一样,没区别,区别的是i++,和++i的值不一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式