----C++中的运算符
运算符是一种告诉编译器执行特定的数学或者逻辑操作的符号。C++内置了丰富的运算符。和运算符相关的概念和知识也是C++编程语言中的重要组成部分。这里做一个初步总结。
基本运算符主要分为以下五类
1, 算术运算符
加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)、取模运算符(%)、自增运算符(++)和自减运算符(- -)。
满足左结合律;当运算优先级相同时,从左到右结合
2, 关系运算符
相等运算符(==),不等运算符(!=),大于运算符(>),小于运算符(<),大于等于运算符(>=)以及小于等于运算符(<=)。
(除非重载,关系运算符的运算结果一般为布尔值)
3, 逻辑运算符
包括逻辑与运算符(&&)、逻辑或运算符(||)和逻辑非运算符(!)。
其中逻辑与和逻辑或运算在C++中采用短路实现,即对于(A&&B),假如已经运算得知A为false,则不再对B进行运算,直接返回结果false;对于(A||B),假如已经运算得知A为true,则不再对B进行运算,直接返回true。
4, 位运算符
位运算符作用于二进制位,并逐位执行操作。(程序中所有的数在计算机内存中都是以二进制存储的)
假设A=60=0b00111100, B=13=0b00001101,则位运算的描述如下:
关于位运算符的妙用,eg:
二进制补码运算符(~):一个有符号的二进制数的补码通常通过该运算符获得。计算机中有符号整数通常都是采用补码进行表示的。
二进制左移运算符(<<):对于正整数而言,左移一位意味着*2,但是执行效率却比普通的算术运算符高很多。
二进制右移运算符(>>):对于正整数而言,右移一位意味着/2,但是执行效率却比普通的算术运算符高很多。
5, 赋值运算符
赋值运算符其实就是等号(=)以及它与所有算术运算符和位运算符的结合。
例如a+=b就等同于a = a + b。赋值运算符可以起到简化代码的作用。C++支持的赋值运算符主要包括:简单赋值运算符(=)、加赋值运算符(+=)、减赋值运算符(-=)、乘赋值运算符(*=)、除赋值运算符(/=)、求模赋值运算符(%=)、左移赋值运算符(<<=)、右移赋值运算符(>>=)、按位与赋值运算符(&=)、按位或赋值运算符(|=)以及按位异或(^=)赋值运算符。
6, 其它运算符
成员访问运算符
点运算符;获取类对象的一个成员
箭头运算符;ptr->m等价于(*ptr).m
条件运算符 ?: (三目运算符)
7.运算符优先级
当然知道了运算符的作用,还需要知道运算符的优先级