C++ 运算符

使用运算符要注意:接受的操作数、优先级、结合性、返回值。

C++ 中的运算符几乎 都可以写成函数调用的形式,因此不难理解表达式通常都有其返回值。赋值运算符的返回值是赋值后左操作数的引用。== 的返回值是一个布尔值,表示两边的操作数是否相等。以表达式 a = 15 6 / 5 为例,它的返回值就是赋值后的 *a ,即 18。 sizeof 的返回值的意义比较多,篇幅所限,这里不分析它。

= 是右结核性

连续使用 = 会怎么样?
以 a = b = c 为例。
由于赋值运算符是右结合性的,原表达式相当于 a = (b = c),所以先计算 b = c,然后返回 b;那么表达式就变成了 a = b,a 的值变为 b 的值。最后的结果就是 a 和 b 的值都变成 c 的值了。—— 这是符合人的直观感受的。可以证明,对于超过两个连续使用的赋值运算符,其结果都与上面的类似。这样做是不会引发编译器或者程序员的误解的。

== 是左结合性

连续使用 == 会怎么样?
以 a == b == c 为例。不妨假设其中三个变量都是 int 型,对于其他情况,分析方法类似。
左结合性:原表达式相当于 (a == b) == c 先计算 a == b,返回 true 或者 false。由于 c 是 int 型,因此会发生隐式类型转换,true 或者 false 会
被转换为 int 型的 1 或者 0。最后表达式就变成 1 == c 或者 0 == c。这显然不是在检查 a、b、c 三个变量是否相等,会引起误解。可以证明,对
于超过两个连续使用的 == 运算符,都会引起类似的误解。

C++ learing 总览

C++ 四舍五入
C++ 取出一個數的每一位
C++ 利用 rand () 產生隨機數
C++ 小知识点总结
C++ 解釋一個語句
C++ #include
C++ RALL
C++ 运算符
C++ 万能标头档
讓 Dev C++ 支持 C++11