自增放前放后
约 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 分别是什么?
登录 后可看答案