c
引用 2 楼 zhao4zhong1 的 回复 : 自己 写 代码 搞 不 清楚 算 符 优先级 请 多 加 括号 。 看 别人 代码 搞 不 清楚 算 符 优先级 能 调试 的话 请 单步 调试 对应 汇编 。 看 别人 代码 搞 不 清楚 算 符 优先级 不 能 调试 的话 想 办法 照 写 一 小 段 孤立 的 可 调试 的 代码 然后 单步 调试 对应 汇编 。 看 别人 代码 搞 不 清楚 算 符 优先级 不 能 调试 的话 且 没有 办法 照 写 一 小 段 孤立 的 可 调试 的 代码 然后 单步 调试 对应 汇编 的话 只 能 参考 算 符 优先级 表 猜 了 （ 提醒 ： 并 不 能 100% 猜对 ） 。 / / C ++ Operators / / Operators specify an evaluation to be performed on one of the following : / / One operand ( unary operator ) / / Two operands ( binary operator ) / / Three operands ( ternary operator ) // The C + + language includes all C operators and adds several new operators . // Table 1.1 lists the operators available in Microsoft C++ . / / Operators follow a strict precedence which defines the evaluation order of / / expressions containing these operators . Operators associate with either the / / expression on their left or the expression on their right ; this is called / / “ associativity . ” Operators in the same group have equal precedence and are / / evaluated left to right in an expression unless explicitly forced by a pair of / / parentheses , ( ) . // Table 1.1 shows the precedence and associativity of C ++ operators / / ( from highest to lowest precedence ) . // //Table 1.1 C ++ Operator Precedence and Associativity / / The highest precedence level is at the top of the table . / / + - --- - - - - - ----- -- -- + - - --- - --------------------------------- -- +- ---------- -- -- + / / | Operator | Name or Meaning | Associativity | / / + - - - - - ---- - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - + / / | : : | Scope resolution | None | / / | : : | Global | None | / / | [ ] | Array subscript | Left to right | / / | ( ) | Function call | Left to right | / / | ( ) | Conversion | None | / / | . | Member selection ( object ) | Left to right | / / | - > | Member selection ( pointer ) | Left to right | / / | + + | Postfix increment | None | / / | - - | Postfix decrement | None | / / | new | Allocate object | None | / / | delete | Deallocate object | None | / / | delete [ ] | Deallocate object | None | / / | + + | Prefix increment | None | / / | - - | Prefix decrement | None | / / | * | Dereference | None | / / | & | Address - of | None | / / | + | Unary plus | None | / / | - | Arithmetic negation ( unary ) | None | / / | ! | Logical NOT | None | / / | ~ | Bitwise complement | None | / / | size of | Size of object | None | / / | size of ( ) | Size of type | None | / / | typeid ( ) | type name | None | / / | ( type ) | Type cast ( conversion ) | Right to left | / / | const _ cast | Type cast ( conversion ) | None | / / | dynamic _ cast | Type cast ( conversion ) | None | / / | reinterpret _ cast | Type cast ( conversion ) | None | / / | static _ cast | Type cast ( conversion ) | None | / / | . * | Apply pointer to class member ( objects ) | Left to right | / / | - > * | Dereference pointer to class member | Left to right | / / | * | Multiplication | Left to right | / / | / | Division | Left to right | / / | % | Remainder ( modulus ) | Left to right | / / | + | Addition | Left to right | / / | - | Subtraction | Left to right | / / | < < | Left shift | Left to right | / / | > > | Right shift | Left to right | / / | < | Less than | Left to right | / / | > | Greater than | Left to right | / / | < = | Less than or equal to | Left to right | / / | > = | Greater than or equal to | Left to right | / / | = = | Equality | Left to right | / / | ! = | Inequality | Left to right | / / | & | Bitwise AND | Left to right | / / | ^ | Bitwise exclusive OR | Left to right | / / | | | Bitwise OR | Left to right | / / | & & | Logical AND | Left to right | / / | | | | Logical OR | Left to right | / / | e1 ? e2 : e3 | Conditional | Right to left | / / | = | Assignment | Right to left | / / | * = | Multiplication assignment | Right to left | / / | / = | Division assignment | Right to left | / / | % = | Modulus assignment | Right to left | / / | + = | Addition assignment | Right to left | / / | - = | Subtraction assignment | Right to left | / / | < < = | Left - shift assignment | Right to left | / / | > > = | Right - shift assignment | Right to left | / / | & = | Bitwise AND assignment | Right to left | / / | | = | Bitwise inclusive OR assignment | Right to left | / / | ^ = | Bitwise exclusive OR assignment | Right to left | / / | , | Com ma | Left to right | / / + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - +
