当前位置

首页 > IT科技 > ++i和i++的使用有何区别

++i和i++的使用有何区别

推荐人: 来源: 秒知社 阅读: 1.21W 次

简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。 而 a = ++i,相当于 i=i+1; a = i; 而 a = i++,相当于 a = i; i=i+1;,++ i 是先知加后赋值;i ++ 是先赋值后加;道下面这是个很好版的例子:权int sum = 0, sum1 = 0;for (int i = 0; i < 5; i++) { sum = i ++;}for (int i = 0; i < 5; i++) { sum1 = ++ i;}System.out.println("sum = " + sum);System.out.println("sum1 = " + sum1);运行结果:sum = 4sum1 = 5,++i是先自加,后运行。i++是先运行,后自加。比如int i=2;a=++i;i=2;b=i++;在运行之后a就等于3 b就等于2,int i=0,k=0, j;j=++i;//j=1,i=1,参与运算前自加1j=k++;//j=0,k=1,参与运算后自加1www.51dongshi.com防采集。

在c语言的学习中,在循环语句中会常常用到++i和i++两个语法,那么++i和i++有怎样的使用区别呢?接下来为大家介绍一下

方法

对于普通独立的语句,i++和++i是一样的,如:

++i在用时是i先自增1,再用这时的i值去参与计算;i++是用增1前的i去参与计算,参与计算后i

i++; 等效于i=i+1;

++i在用时是i先自增1,再用这时的i值去参与计算;i++是用增1前的i去参与计算,参与计算后i

++i; 等效于i=i+1;

i++,是先执行代码,最后再执行i的自增++i,是先执行自增,然后再执行代码例如:int

++i和i++的使用有何区别

用于赋值语句,i++先赋值后加1,++i先加1后赋值,如:

i++; 在当前使用变量时,i值不变,用完再加1,对于for循环中的那个i++仅表示进行加1这个计算

i=1; y=i++;等效于:i=1; y=i; i=i+1; 则执行完后 y=1; i=2;

怎么说呢,i = i++就是坑爹的!!理论上讲,语言规范上就不应该这么写。实际编译运算结果是 i

i=1; y=++i;等效于:i=1; i=i+1; y=i; 则执行完后 y=2; i=2;

简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。 而 a = ++i,相当于 i

++i和i++的使用有何区别 第2张

用于判断条件表达式时: a、i++:先执行判断后加1【出结果】为:1【分析】:i++先把i的值0拿出来做判断条件,此时while(0)条件为假,所有不执行while循环体,但是判断完成后,i执行+1动作(i=i+1),所以i=1,输出值为1;

关于自增自减运算,很多书籍没有把问题讲清楚,在C语言里是这样的: 1.后置运算:k++表示先

++i和i++的使用有何区别 第3张

b、++i:先加1后执行判断【输出结果】为:i=1,i=2,i=3,i=3【分析】:++i,执行过程先把i的值执行i=i+1,此时i=1再进行判断,所有while(1)条件为真,然后在执行循环体,输出i=1回车换行,if不成立,继续循环;

主要差异在于返回值,相同点在于对i进行自加:++i返回的是i自加后的内容,i++返回的是i未自加

当i=1时,再判断循环条件++i,还是先执行i=i+1,此时i=2; while(2) 条件为真,然后再做循环体,此时输出 i=2回车换行;if不成立,继续循环;

i++和i--的区别:1、运算方式i++属于自增运算,相当于i=i+1;i--属于自减运算,相

当i=2时,再判断循环条件++i,还是先执行i=i+1,此时i=3; while(3) 条件为真,然后再做循环体,此时输出 i=3回车换行;if成立,强制推出循环;

i++和++i命令的区别有:1、赋值顺序不同++ i 是先加后赋值;i ++ 是先赋值后加;++

++i和i++的使用有何区别 第4张

关于自增自减运算,很多书籍没有把问题讲清楚百,在C语言里是这样的: 1.后置运算:k++表示先运算,后自加。 意思是遇到k++了,我先把当前的k的值拿来参加运算,后面再去管它的自加。 那么,【“后面”后到什度么程度呢?要后到当前的语句执行完,即遇到分号;表示 语句执行完了,所以k才自加1。】 如:int k=5,b=0; b=k++;的意思就知是,先算道b=k(即b=5),遇到分号;表示语句结束,k才自加1,即k变为6。2.前置运算:++k表示先自加,后运算 这个意思就是遇到++k了,先把k的值加了1,再往后执行别的。 如:int k=5,b=0; b=++k;的意思就是,先把k自加1,即k为6,再算b=k(即b=6)。掌握好这两点,k--和--k也是一样的道理,++i: 先进行自增zd动作,再参与后续处理i++:先参与处理,再进行回自增动作a=++1:这个语句是不对的,常量不能进行++,--操作答如果是a=++i的话:运行步骤如下:i = i + 1;a = i; b=j++;运行步骤如下:b = j;j = j + 1;,++i是在进行运算之前使i自增1,再用增抄后的值进行运算 i++是在进行运袭算之百后才使i增1,使用原值进行运算一次后,再使i自增度1 你运行一下这个再体会问体会就明白了: i=1;j=1;k=1;t=1; m1=i++ + i++; m2=++j + ++j; m3=k++ + ++k; m4=++t + ++t;(注:自增自减速运算只能对变量进行,常量和表达式答不能进行该运算),一个前自增,一个后自增,三心惢 suǒ 疑虑;善 三言譶 tà 说话快 三力劦 xié 古同“协”,合力;同力,主要差异在于返回值,相同点在于对i进行自加:++i返回的是i自加后的来内容,i++返回的是i未自加的内容。举个例子自:int i = 10;a = i++;vs int i = 10;b = ++i;结果分别是 i = 11, a = 10和 i = 11, b = 11。将i++和++i汇编结果,若没有使用其返回值赋值特性,结果是一样的,有返回值差异在于知汇编代码执行先后(先自加还是先赋值)区别。另外,关于for(i = 0; i < n; i++)与for(i = 0; i < n; ++i) 有差异的说法是扯淡的。现在我们看到的编译器,基本都会汇编成相道同的代码(好像有基本经典教程说有差异,那只是针对古老的编译器)内容来自www.51dongshi.com请勿采集。