03_C++运算符

📅 2026/6/30 1:13:15
03_C++运算符
03_C运算符运算符主要用于执行代码的运算逻辑这里的运算不止局限于四则运算还会有大小、相等的比较与或非的逻辑运算等等。本篇主要介绍以下几类运算符运算符类型作用算术运算符用于处理四则运算赋值运算符用于将表达式的值赋给变量比较运算符用于表达式的比较并返回一个真值或假值逻辑运算符用于根据表达式的值返回真值或假值3.1 算术运算符算术运算符用于处理四则运算加减乘除运算符专业术语示例结果正号33-负号-3-3加10 515-减10 - 55*乘10 * 550/除10 / 52%取模(取余)10 % 31前置递增a2; ba;a3; b3;后置递增a2; ba;a3; b2;–前置递减a2; b–a;a1; b1;–后置递减a2; ba–;a1; b2;示例代码int main() { int num1 20; int num2 10; cout num1 num2 endl; cout num1 - num2 endl; cout num1 * num2 endl; cout num1 / num2 endl; num1 10; num2 20; cout num1 / num2 endl; // 结果为0注意这里的整除问题 // 以及除数不能是0num1 / 0; error程序会崩溃 cout (double) num1 / num2 endl; // 0.5任意一边是浮点数结果就是浮点数 num1 10; num2 3; cout num1 % num2 endl; // 取模 double f1 3.14; double f2 2.5; // cout f1 % f2 endl; // error, 取模仅限整数和整数之间 int num3 10; int num4 num3 * 10; // 先加再用 cout num4 endl; num4 num3 * 10; // 先用再加 cout num4 endl; return 0; }3.2 赋值运算符顾名思义赋值运算符用于给变量赋值运算符专业术语示例结果赋值a2; b3;a2; b3;加等于a0; a2;a2;-减等于a5; a-3;a2;*乘等于a2; a*2;a4;/除等于a4; a/2;a2;%模等于a3; a%2;a1;示例代码int main() { int num1 10; // 变量定义此处的其实是对变量的初始化不叫做赋值。 num1 20; // 给num1赋值为20 cout num1 endl; int num2 20; num2 2; // num2 num2 2; cout num2 endl; num2 - 3; // num2 num2 - 3; cout num2 endl; num2 * 2; // num2 num2 * 2; cout num2 endl; num2 / 2; // num2 num2 / 2; cout num2 endl; num2 % 3; // num2 num2 % 3; cout num2 endl; return 0; }3.3 比较运算符顾名思义比较运算符就是用于比较两个值返回一个bool结果。比较运算符有以下这些运算符术语示例结果相等于4 30!不等于4 ! 31小于4 30大于4 31小于等于4 30大于等于4 11示例代码int main() { int num1 1; int num2 2; cout num1 num2 endl; // 0 cout num1 ! num2 endl; // 1 cout num1 num2 endl; // 0 cout num1 num2 endl; // 1 cout num1 num2 endl; // 0 cout num1 num2 endl; // 1 return 0; }输出bool结果时不会输出true/false字符串而是用0/1表示0代表false1代表true3.4 逻辑运算符3.4.1 与或非与或非作用于两个bool结果返回一个bool结果运算符术语示例结果!非!a如果a为假则!a为真 如果a为真则!a为假。与a b如果a和b都为真则结果为真否则为假。||或a|| b如果a和b有一个为真则结果为真二者都为假时结果为假。示例代码int main() { int a 10; bool b false; cout !a endl; // 非0即真 cout !b endl; // 1 cout a b endl; // 0 cout b a endl; // 0, a?, 注意短路特性 cout a || b endl; // 1 cout ( a || (b true) ) endl; // 1, b?, 注意短路特性注意小括号显示指定运算优先级 return 0; }3.4.2 位操作运算符不同于与或非是作用于值这个整体的位操作运算符是针对数据的每个二进制位。主要有以下几种运算符术语示例结果|按位或2|33按位与232^按位异或2^31~按位取反~2-3示例代码int main() { cout (2 | 3) endl; cout (2 3) endl; cout (2 ^ 3) endl; cout (~2) endl; system(pause); return 0; }3.5 运算符优先级运算符的优先级是指一个表达式中含有多个运算符时运算符的执行顺序。优先级运算符描述结合性1::作用域解析左结合2--后置自增、自减左结合()函数调用左结合[]下标左结合.-成员访问左结合typeidconst_caststatic_castreinterpret_castdynamic_cast类型信息与强制类型转换左结合3--前置自增、自减右结合-一元正负号右结合!~逻辑非、按位取反右结合*解引用、取地址右结合newnew[]deletedelete[]内存管理右结合sizeofalignof大小/对齐右结合decltype类型推断不适用4.*-*成员指针访问左结合5*/%乘、除、取模左结合6-加减左结合7移位运算左结合8关系运算符左结合9!相等运算符左结合10按位与左结合11^按位异或左结合12|按位或左结合13逻辑与左结合14||逻辑或左结合15?:三目条件运算符右结合16-*/%^|赋值右结合17,逗号运算符左结合示例代码int main() { bool a false, b true, c false; cout a || b !c endl; return 0; }