目录
左值与右值的理解
左值通常是内存单元,另一方面,右值可以是内存单元的内容。因此,所有的左值都可用作右值,但并非所有的右值都可用作左值。所有的左值(如变量)都可用作右值,但并非所有的右值都可用作左值,请看示例:
101 = MyInteger;
这行代码是不合理的,不能通过编译。
运算符汇总
除法运算符(/)
如果两个操作数都是整数,结果将不包含小数,直接取整。
求模运算符(%)
返回除法运算的余数,只能用于整数。
递增、递减运算符(++、--)
有需要将变量加(减)1的,每次循环,都需要将变量值递增或递减。
前缀or后缀?
先说结论,前缀优于后缀,因为后缀编译器需要临时存储初始值,以防需要将其赋给其他变量。但单就整形变量而言,并无影响。
相等运算符(==)和不等运算符(!=)、大于等于(>=)、小于等于(<=)
按位右移运算符(>>)和左移运算符(<<)
移位运算符将整个位序列向左或向右移动,其用途之一是将数据乘以或除以2^n.
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int Num = 2;
cout << "Num: " << Num << endl;
//将变量乘以2
int Doublevalue = Num << 1;
cout << "Doublevalue: " << Doublevalue << endl;
//将变量除以2
int Halvedvalue = Num >> 2;
cout << "Halvedvalue: " << Halvedvalue << endl;
return 0;
}
逻辑运算符
NOT(!!)、AND(&&)、OR(||)
按位运算符
按位运算符返回的并非布尔值,而是对操作数对应位执行指定运算的结果。
NOT(~):将每位取反
AND(&):对相应位执行AND运算
OR(|):对相应位执行OR运算
XOR(^):对相应为执行异或运算(XOR)
其中,后三个运算符对变量与选择的数字(通常是位掩码)执行相应的运算。
在整数的每位都表示特定标记的状态时,有些按位运算特别有用。例如,32位的整数可用于表示32个布尔标记。
复合运算符和优先级排列
等级越大越高: