为什么i的值会像这样变化

把printf和自增结合起来,出来的运行结果没看懂,为啥i++的值为3,而++i的值为4

img

望采纳

在 C 语言中,自增运算符 ++ :

  • 前缀形式(例如 ++i)在赋值之前增加变量的值
  • 后缀形式(例如 i++)在赋值之后增加变量的值。

你代码中使用了前缀和后缀形式的自增运算符,因此变量 i 的值会发生变化。具体来说:

  • 在第一次使用自增运算符时,变量 i 的值为 1。程序会打印变量 i 的值 1。
  • 在第二次使用自增运算符时,变量 i 的值被增加为 2。但是,由于这是后缀形式的自增运算符,因此打印的是变量 i 原来的值 1。
  • 在第三次使用自增运算符时,变量 i 的值被增加为 3。由于这是前缀形式的自增运算符,因此打印的是变量 i 的新值 3。
  • 在第四次使用自增运算符时,变量 i 的值被增加为 4。由于这是前缀形式的自增运算符,因此打印的是变量 i 的新值 4。

因此,程序的输出结果为 "1 3 4 4"。

i++因为是先取值后++,所以它的取值会被缓存起来,而i和++i的值就是i本身的值

++是自增的意思,等价于i=i+1