i++和++1区别
时间: 2023-06-28 16:09:30 浏览: 63
i++和++i都是C/C++语言中的自增运算符,它们的区别在于:
1. i++表示先使用i的值,然后再将i加1;++i表示先将i加1,然后再使用i的值。
2. i++返回的是i自增前的值,而++i返回的是i自增后的值。
举个例子:
```
int i = 1;
int a = i++; // a = 1, i = 2
int b = ++i; // b = 3, i = 3
```
在第一行代码执行后,i的值为2,但是a的值仍然是1,因为i++返回的是i自增前的值。而在第二行代码执行后,i的值为3,同时b的值也为3,因为++i返回的是i自增后的值。
相关问题
++i 和i ++区别
++i 和i++ 都是 C++ 中的自增运算符,它们的区别在于它们所产生的副作用的执行时间不同。
++i 是前置自增运算符,它会先将 i 的值加 1,然后再将加 1 后的结果返回,即先执行自增操作再返回 i 的值。
i++ 是后置自增运算符,它会先将 i 的值返回,然后再将 i 的值加 1,即先返回 i 的值再执行自增操作。
举个例子:
```c++
int i = 1;
int x = ++i; // x = 2, i = 2
int y = i++; // y = 2, i = 3
```
在第一行代码中,++i 先将 i 加 1,再返回加 1 后的值赋给 x,所以 x 的值为 2,i 的值也为 2。
在第二行代码中,i++ 先将 i 的值赋给 y,再将 i 加 1,所以 y 的值为 2,i 的值为 3。
i++ 和 ++i 区别
引用中提到,i是先赋值,然后再自增,而i是先自增,后赋值。换句话说,i得到的是进行加法操作前的值的副本,而i直接得到计算后的值。
引用中提到,通过代码模拟的结果似乎是i和i都直接对i进行了i=i+1的操作。但在汇编指令中,这两种操作的执行指令完全一样。
然而,通过改变代码,可以看出为什么i=i和i=i会产生不同的结果。在i=i的情况下,先进行的是自增操作,再将结果赋值给i。而在i=i的情况下,先进行的是赋值操作,再进行自增操作。
所以,i和i的区别在于它们执行自增和赋值的顺序。