c语言++i和i++有什么区别

Z, ZLW 15638

i++和++i都是c语言里的自增,但是它们自增的顺序不同。在++i中,i的值递增,表达式的值是i的新值。所以基本上它首先递增然后为表达式分配一个值。在i++中,i 的值是递增的,但表达式的值是 i 的原始值。所以基本上它首先为表达式赋值,然后递增变量。   

i++和++i都是c语言里的自增,但是它们自增的顺序不同。在++i中,i的值递增,表达式的值是i的新值。所以基本上它首先递增然后为表达式分配一个值。在i++中,i 的值是递增的,但表达式的值是 i 的原始值。所以基本上它首先为表达式赋值,然后递增变量。   

让我们看以下代码以便更好理解。

#include<iostream>
using namespace std;
int main() {
   int x = 3, y, z;
   y = x++;
   z = ++x;
   cout << x << ", " << y << ", " << z;
   return 0;
}

以上代码输出为

5, 3, 5

为什么出现这种情况?

  • 将 x 初始化为 3
  •  将我们通过计算表达式 x++ 得到的值分配给 y,即先增加 x 的值,然后再增加 x。
  •  增加 x 然后将我们通过计算表达式 ++x 得到的值分配给 z,即增加后 x 的值。
  •  打印这些值

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部