💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 一.基本概念 1. **复合表达式** 含有两个或多个运算符的表达式。 每个运算符的优先级、结合性影响复合表达式的结果。 2. **优先级** 高优先级运算符的运算对象比低优先级运算符的运算对象更为紧密的组合在一起。 > `3+4*2` 的值是 `11` ,而不是 `14` 。 3. **结合性** 当两个运算符的优先级相同时,组合运算对象的顺序。 > `20-15-5` 的值是 `0` ,而不是 `10` 。(左结合性) > `cin>>a>>b;` 先读入 `a` ,再读入 `b` 。(左结合性) 4. **括号** 无视优先级与结合性,被括起来的值当成一个独立单元来求值。 5. **求值顺序** 优先级和结合性规定了运算对象的组合方式,但是没有规定运算对象按照什么顺序求值。 > `f1() * f2();` 可以确定 `*` 与 `f1()` 和 `f2()` 结合。但在这个表达式中,优先级和结合性并没有规定先算 `f1()` 还是先算 `f2()` 。 > `cout<< f1() << f2();` 优先级和结合性也没有规定先算 `f1()` 还是先算 `f2()` 。 + 有四种运算符明确规定了求值顺序:逻辑与`&&` , 逻辑或 `||` , 条件 `?:` ,逗号 `,` 。 + 其余运算符的求值顺序与编译器有关。