自增放前放后

10 分钟

自增运算符放在变量前后,含义不同:

  • ++i(前置):先加 1,再把加完的值拿去用。
  • i++(后置):先把当前值拿去用,之后再加 1。

单独写一行 i++;++i; 效果完全一样,都只是把 加 1;一旦混进表达式里,取到的值就不同了。

int i = 5;
cout << i++ << "\n";         // 输出 5:先用后加,之后 i=6
i = 5;                       // 重置,单独看 ++i
cout << ++i << "\n";         // 输出 6:先加后用

i++ 取到 5(用完才加),++i 取到 6(先加再用)。

考试爱考 a = i++a[i++] 这类:要分清"这一步用的是旧值还是新值"。经验法则——后置就像"先付货再改标签",表达式拿到的是旧值。另外,同一条语句里对同一个变量多次自增(如 i++ + ++i)结果是未定义的,正规题目不会这么出,自己写代码也要避免。

小纸条

i=5,输出 i++ 和 ++i 分别是什么?

登录 后可看答案

自增放前放后 · 考级冲刺 · op599 课程