评估顺序>>和[++]

时间:2015-12-15 09:55:20

标签: c++ operator-precedence

我对C ++中的操作优先级有疑问。我在http://en.cppreference.com/w/cpp/language/operator_precedence中搜索了优先级,并且我读到的这个问题大致相同array increment difference in C

我没有得到任何明确的结论。如果我做

var >> array[n++];

运营商>>用于读取字符的流。 ¿它存放在哪里我读了?在n或n + 1?

谢谢

2 个答案:

答案 0 :(得分:8)

这与优先级无关,它与后增量的语义有关。

var >> array[n++];

n++会增加n并评估为n的原始值。因此,它等同于写作:

var >> array[n];
++n;

因此该值将被读入array[n]

答案 1 :(得分:4)

存储在n中。 n ++递增计数器并返回旧值。 ++ n递增计数器并返回新值。

另见What is the difference between ++i and i++?