i++和++i的区别
摘要1、赋值顺序不同。2、效率不同,一般来说在循环域里面,这两者并没有什么很大的区别,但是要注意其生存周期,以及i值在程序流中的变化。3、i++ 不能作为左值,而++i
1、赋值顺序不同, ++ i 是先加后赋值;i ++ 是先赋值后加;++i和i++都是分两步完成的。
2、效率不同,比如i=3,b=i++就是说b=3,完成之后让i变成4,b=++i就是先让i++变成4,然后b=4,其中++i比i++效率要高些。一般来说在循环域里面,这两者并没有什么很大的区别,但是要注意其生存周期,以及i值在程序流中的变化。
3、i++ 不能作为左值,而++i 可以。左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。一般来说,左值是可以放到赋值符号左边的变量。
4、i++和++i都是实现变量i的自增,两者的区别在于i++是先运算,再加1,而++i是先加1,后运算。但是不管是i++还是++i,最后i的值都是相同的。
5、操作结果不同,对于n=++ i ,进行操作后,n的值发生了改变,其值变成了i+1,对于n=i++ ,进行操作后,n的值不发生改变,其值仍然为i。