i++在for循环里是怎么实现的

书上说i++是先用i当前值在加1而for循环执行的步骤是先执行第一第二步骤,符合就执行循环体,然后再执行i++,此时到下一循环是用1还是用2;实际上是用2,但书上不是说先用当前值在加1;我想知道i++的范围是多少 最好举例子给我,我先举个我不理解的列子比如
for(i=0;i<5;i++)与for(i=0;i<5;++i)应该不同吧 但用时为什么没什么区别。希望各位这领域的高手能帮帮我这大一学生

如果说
int i= 0;
int j = i++;与int j = ++i;那显然是有你理解的区别
也就是前缀和后缀自增的区别在于运算符返回值,而运算之后的变量值都是原先的变量值+1这也是毫无疑问的。
所以在你写的for循环里,我们因为没有用到自增运算符的返回值,故没有区别
不过如果写成for (i = 0; i++<5; )和 for (i = 0; ++i<5; )就又出现区别了

“此时到下一循环是用1还是用2;实际上是用2,但书上不是说先用当前值在加1”对于这句话,你要理解所谓的“用”仅仅在i++这一个语句中,当这个语句执行完了,它也就用过了,那么i的值已经是i+1了。这里牵扯到一个赋值生效的概念,叫什么我忘记了。。。不过请千万不要小看“赋值”这个看似理所应当的东西,实际上在某种程度这是过程式编程语言的核心
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-23
如果是for(初始化i;判断条件;i++)循环和while循环就是初始化i,程序运行一次,同时i+1在赋值给i,判断条件是否符合推出循环的条件,不满足,则在运行此循环,i在加一,一次类推,直到满足推出的条件
第2个回答  2010-07-17
for(i=0;i<5;i++)与for(i=0;i<5;++i)这个在意义上是不同的,但是由于没有用到跟i的具体关系,所以你看不出来。i++当然是先判断i,再加1,而++i当然是先加1在判断啦
第3个回答  2010-07-17
简单说~++a和a++是在当前的一条语句会有所不同~
比如~a=i++和b=++i;这两条语句中~如果i=1;则a=1,b=2,而当这两条语句执行完~
i的值都等于2~
在for循环中~++i和i++后面都有分号~也是一条语句~所以执行完~都是一样~都是i+1.
第4个回答  2019-09-08
如果说
int
i=
0;
int
j
=
i++;与int
j
=
++i;那显然是有你理解的区别
也就是前缀和后缀自增的区别在于运算符返回值,而运算之后的变量值都是原先的变量值+1这也是毫无疑问的。
所以在你写的for循环里,我们因为没有用到自增运算符的返回值,故没有区别
不过如果写成for
(i
=
0;
i++<5;
)和
for
(i
=
0;
++i<5;
)就又出现区别了
“此时到下一循环是用1还是用2;实际上是用2,但书上不是说先用当前值在加1”对于这句话,你要理解所谓的“用”仅仅在i++这一个语句中,当这个语句执行完了,它也就用过了,那么i的值已经是i+1了。这里牵扯到一个赋值生效的概念,叫什么我忘记了。。。不过请千万不要小看“赋值”这个看似理所应当的东西,实际上在某种程度这是过程式编程语言的核心
相似回答