📜  C++中的运算符(1)

📅  最后修改于: 2023-12-03 15:29:54.694000             🧑  作者: Mango

C++中的运算符

C++中的运算符用于执行各种操作,如算术、逻辑和关系运算。运算符可分为以下几类:

1. 算术运算符

| 运算符 | 描述 | | --- | ---| | + | 加法 | | - | 减法 | | * | 乘法 | | / | 除法 | | % | 取余 |

int a = 10, b = 20;
int sum = a + b;        // sum为30
int difference = a - b; // difference为-10
int product = a * b;    // product为200
int quotient = b / a;   // quotient为2
int remainder = b % a;  // remainder为0
2. 赋值运算符

| 运算符 | 描述 | | --- | ---| | = | 简单的赋值运算符 | | += | 加法赋值运算符 | | -= | 减法赋值运算符 | | *= | 乘法赋值运算符 | | /= | 除法赋值运算符 | | %= | 取余赋值运算符 |

int a = 10;
a += 5;  // 等价于 a = a + 5, a现在的值为15
a -= 3;  // 等价于 a = a - 3, a现在的值为12
a *= 2;  // 等价于 a = a * 2, a现在的值为24
a /= 4;  // 等价于 a = a / 4, a现在的值为6
a %= 5;  // 等价于 a = a % 5, a现在的值为1
3. 自增自减运算符

| 运算符 | 描述 | | --- | ---| | ++ | 自增 | | -- | 自减 |

int a = 10;
a++;     // a现在的值为11
a--;     // a现在的值为10

注意:自增自减运算符可以放在变量的前面或后面,前后放置的区别参见下面的例子。

int x = 10;
int y = ++x; // x现在的值为11,y的值也为11(先自增再使用变量)
int z = x++; // x现在的值为12,z的值为11(先使用变量再自增)
4. 关系运算符

关系运算符用于比较两个值的大小关系,返回值类型为bool类型,即true或false。

| 运算符 | 描述 | | --- | ---| | == | 相等 | | != | 不相等 | | > | 大于 | | < | 小于 | | >= | 大于等于 | | <= | 小于等于 |

int a = 10, b = 20;
bool result1 = (a == b);    // result1为false
bool result2 = (a != b);    // result2为true
bool result3 = (a > b);     // result3为false
bool result4 = (a < b);     // result4为true
bool result5 = (a >= b);    // result5为false
bool result6 = (a <= b);    // result6为true
5. 逻辑运算符

逻辑运算符用于对bool类型的值进行操作,返回值类型为bool类型,即true或false。

| 运算符 | 描述 | | --- | ---| | && | 逻辑与(and) | | || | 逻辑或(or) | | ! | 逻辑非(not) |

bool p = true, q = false;
bool result1 = (p && q);   // result1为false
bool result2 = (p || q);   // result2为true
bool result3 = !p;         // result3为false
6. 位运算符

位运算符用于对二进制数进行操作,其中&、|、^和~用于按位逻辑运算,<<和>>用于按位移位运算。

| 运算符 | 描述 | | --- | ---| | & | 按位与 | | | | 按位或 | | ^ | 按位异或 | | ~ | 按位取反 | | << | 左移位 | | >> | 右移位 |

unsigned int a = 60;      // 60的二进制表示为0011 1100
unsigned int b = 13;      // 13的二进制表示为0000 1101
unsigned int result;

result = a & b;           // result为0000 1100
result = a \| b;          // result为0011 1101
result = a ^ b;           // result为0011 0001
result = ~a;              // result为1100 0011
result = a << 2;          // result为1111 0000
result = a >> 2;          // result为0000 1111
7. 其他运算符
  • 条件运算符 ?::用于简化if-else语句。
  • sizeof运算符:用于返回数据类型或变量的大小。
  • 逗号运算符:用于连接多个表达式,返回值为最后一个表达式的值。
int a = 10, b = 20;
int max = (a > b) ? a : b;  // max为20
int size1 = sizeof(int);    // size1为4(int类型在32位机器上占4个字节)
int size2 = sizeof(a);      // size2为4(a是int类型,其大小为4个字节)
int sum = (a += 5, b += 10); // sum为30,a的值现在为15,b的值现在为30