i++和++i的区别

 我来答
_粥粥吖_
2022-12-20 · TA获得超过576个赞
知道小有建树答主
回答量:1893
采纳率:100%
帮助的人:28.7万
展开全部

i++和++i的区别如下:

1、赋值顺序不同。

++i是先加后赋值;i++是先赋值后加;++i和i++都是分两步完成的。

因为++i是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i=a=b,即++i是一个左值;i++的后面一步是自增,不是左值。

2、效率不同。

比如i=3,b=i++就是说b=3,完成之后让i变成4,b=++i就是先让i++变成4,然后b=4,其中++i比i++效率要高些。

一般来说在循环域里面,这两者并没有什么很大的区别,但是要注意其生存周期,以及i值在程序流中的变化。

3、i++不能作为左值,而++i可以。

左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。一般来说,左值是可以放到赋值符号左边的变量。

i++和++i的解释:

i++即后加加,原理是:先自增,然后返回自增之前的值。

++i即前加加,原理是:先自增,然后返回自增之后的值。

(都是先自增,然后反回值)

一个变量也是表达式,多个表达式的加减法运算都是从左到右进行的。

真实编程中,我们不会写这些复杂的i++代码,但是在考试,笔试中可能有关于i++的用法不同判断。

自增(++)自减(--)运算符的作用是使变量的值加1或者减1,例如:

++i,--i(在使用i之前,先使i的值加(减)1)

i++,--i(在使用i之后,使i的值加(减)1)

粗略的看,++i和i++的作用相当于i=i+1。但++i和i++的不同之处在于:++i是先执行i=i+1,再使用i的值;而i++是先使用i的值,再执行i=i+1。如果i的原值等于3,请分析下面的赋值语句。

1、j=++i;(i的值先变为4,再赋值给j,j的值为4)

2、j=i++;(现将i的值3赋给j,j的值为3,然后i变为4)

又例如:

i=3

printf(“%d”,++i);

输入为4,若改为

printf(“%d”,i++)

则输出为3。

自增自减运算符常用于循环语句中,使循环变量自动加1;也用于指针变量,使指针指向下一个地址。

食以继日
2023-04-14 · TA获得超过300个赞
知道大有可为答主
回答量:6049
采纳率:98%
帮助的人:239万
展开全部
i++和++i都是C++中的自增运算符,它们的区别在于它们的运算顺序和结果的值。
i++是后自增运算符,它的运算顺序是先使用i的值,然后再将i的值加1。例如,如果i的值为5,则执行i++后,i的值变为6,但是在执行i++之前,i的值仍然是5,因此i++的结果为5。
++i是前自增运算符,它的运算顺序是先将i的值加1,然后再使用i的值。例如,如果i的值为5,则执行++i后,i的值变为6,而且在执行++i之后,i的值已经变为6,因此++i的结果为6。
在程序中,i++和++i的使用取决于具体的需求。如果需要先使用i的值然后再将i加1,可以使用i++;如果需要先将i加1然后再使用i的值,可以使用++i。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
南图说说
2023-04-24 · 每日更新情感信息,让你无时无刻都了解情感
南图说说
采纳数:18 获赞数:19

向TA提问 私信TA
展开全部
i++和++i均表示对变量i进行自增操作,但它们所产生的结果有所不同。

i++表示先使用i的当前值,然后再将i的值加1。例如,如果i的值为5,那么i++的结果为5,并且i的值变为6。

++i表示先将i的值加1,然后再使用加1后的值。例如,如果i的值为5,那么++i的结果为6,i的值也会变为6。

举个例子,假设i的初始值为5,那么执行操作i++时,表达式的值为5,i的值变为6;而执行++i时,表达式的值为6,i的值也为6。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式