C++ 零基础教程 - 第 6 讲 常用运算符教程

一、开篇导入(衔接上一讲,零基础易懂)

上一讲我们学会了变量和3种基础常用数据类型(int、double、std::string),知道了如何定义、修改和使用变量------就像我们已经有了"装数据的盒子"。但只有盒子还不够,我们还需要学会"操作盒子里的数据":比如用两个变量做加减乘除、判断两个变量的大小、判断两个条件是否同时成立,这些操作就需要用到运算符

本讲我们将讲解4类零基础必学的常用运算符,全程极简、不绕弯,只讲核心用法,搭配简单代码示例(可直接复制运行),结合上一讲的变量知识,让你快速上手,为后续编写复杂程序打下基础。

温馨提示:本讲重点记"运算符的作用"和"基础用法",不用死记语法,结合代码练习,就能轻松掌握;所有代码均延续上一讲风格,无复杂内容,零基础可直接套用。

二、本讲核心目标(明确重点,不浪费时间)

  1. 掌握算术运算符:会用 +、-、*、/、% 操作变量(重点区分 / 和 % 的用法);

  2. 掌握赋值运算符:会用 =、+=、-= 给变量赋值、简化变量修改操作;

  3. 掌握比较运算符:会用 >、<、==、!= 判断两个变量的大小/是否相等;

  4. 了解逻辑运算符:极简掌握 &&(并且)、||(或者)的核心用法,能判断简单条件。

三、核心知识点1:算术运算符(最常用,必学)

算术运算符,就是用来做"数学运算"的符号,和我们生活中的加减乘除完全一致,额外新增一个"取余数"运算符 %,重点用于整数运算,double类型也可使用加减乘除(% 不常用)。

1. 5种算术运算符总结(表格清晰,记牢)

运算符 作用 示例(结合变量,int a=10, b=3) 结果
+ 加法运算 int sum = a + b; sum = 13
- 减法运算 int diff = a - b; diff = 7
* 乘法运算 int product = a * b; product = 30
/ 除法运算(重点) int div1 = a / b;(整数/整数)
double div2 = 10.0 / 3;(小数/整数) div1 = 3(取整数部分)
div2 ≈ 3.333
% 取余数运算(重点) int mod = a % b;(仅用于整数) mod = 1(10除以3,余数是1)

2. 关键提醒(新手避坑)

  1. 除法 /:两个整数相除,结果只保留整数部分,不四舍五入(比如 10/3=3,不是3.333);只要有一个数是小数(double类型),结果就是小数。

  2. 取余数 %:只能用于整数运算(int类型),不能用于double类型(比如 10.5%3 会报错);余数的符号和第一个数一致(比如 10%3=1,-10%3=-1)。

  3. 算术运算符可以直接用变量、常量,也可以嵌套使用(比如 (a + b) * 2)。

3. 实战示例(直接复制运行)

结合上一讲的变量知识,用代码演示所有算术运算符的用法,重点观察除法和取余数的区别:

cpp 复制代码
#include <iostream>

int main() {
    // 定义两个整数变量,用于演示算术运算符
    int a = 10;
    int b = 3;
    
    // 1. 加减乘运算
    int sum = a + b;
    int diff = a - b;
    int product = a * b;
    
    // 2. 除法运算(整数/整数、小数/整数)
    int div_int = a / b;          // 整数相除,取整数部分
    double div_double = 10.0 / b; // 小数相除,保留小数
    
    // 3. 取余数运算(仅整数)
    int mod = a % b;
    
    // 打印所有结果
    std::cout << "a + b = " << sum << std::endl;
    std::cout << "a - b = " << diff << std::endl;
    std::cout << "a * b = " << product << std::endl;
    std::cout << "a / b = " << div_int << std::endl;
    std::cout << "10.0 / b = " << div_double << std::endl;
    std::cout << "a % b = " << mod << std::endl;
    
    return 0;
}

运行结果:

a + b = 13

a - b = 7

a * b = 30

a / b (整数相除) = 3

10.0 / b (小数相除) = 3.33333

a % b (取余数) = 1

新手练习:修改a和b的值(比如a=15,b=4),运行代码,观察除法和取余数的结果变化,加深理解。

四、核心知识点2:赋值运算符(简化变量操作,必学)

赋值运算符,核心作用是"给变量赋值",上一讲我们已经用到了最基础的 =,本讲新增 +=、-= 两种简化用法,能减少代码量,让变量修改更简洁,零基础重点掌握这3种即可。

1. 3种赋值运算符总结(重点记简化用法)

运算符 作用(核心简化逻辑) 简化写法(int a=10) 等价写法(和上面完全一样)
= 基础赋值:给变量赋新值 a = 20; 无(本身就是最简)
+= 加后赋值:变量自身加一个数,再赋给自己 a += 5; a = a + 5;
-= 减后赋值:变量自身减一个数,再赋给自己 a -= 3; a = a - 3;

2. 关键提醒(新手避坑)

  1. 赋值运算符是"从右往左"赋值,比如 a = 10; 是把10赋给a,不是把a赋给10;

  2. +=、-= 是"自身运算后赋值",必须先定义变量(有初始值),才能使用(比如直接写 a +=5; 会报错,需先写 int a=10;);

  3. +=、-= 后面可以是常量,也可以是变量(比如 a += b; 等价于 a = a + b;)。

3. 实战示例(直接复制运行)

演示赋值运算符的基础用法和简化用法,对比简化写法和等价写法的效果(完全一致):

cpp 复制代码
#include <iostream>

int main() {
    // 定义变量,给初始值(赋值运算符的前提)
    int a = 10;
    int b = 5;
    
    // 1. 基础赋值 =
    a = 15;  // 把15赋给a,a的值从10变成15
    std::cout << "a = 15, a = " << a << std::endl;
    
    // 2. 简化赋值 +=
    a += b;  // 等价于 a = a + b; 此时a=15+5=20
    std::cout << "a += b, a = " << a << std::endl;
    
    // 3. 简化赋值 -=
    a -= 3;  // 等价于 a = a - 3; 此时a=20-3=17
    std::cout << "a -= 3, a = " << a << std::endl;
    
    // 演示:+= 也可以用常量
    a += 8;  // 等价于 a = a + 8; 此时a=17+8=25
    std::cout << "a += 8, a = " << a << std::endl;
    
    return 0;
}

运行结果:

a = 15, a = 15

a += b, a = 20

a -= 3, a = 17

a += 8, a = 25

新手练习:定义变量 int score=85;,用 += 给score加5,用 -= 给score减3,打印最终结果(预期结果87)。

五、核心知识点3:比较运算符(判断大小/相等,必学)

比较运算符,核心作用是"判断两个值的关系",比如判断a是否大于b、a是否等于b,判断结果只有两种:真(true)假(false),后续写判断逻辑(比如"如果成绩大于60,就是及格")会频繁用到。

零基础重点掌握4种比较运算符,记住"== 是等于,= 是赋值"(新手最易混淆)。

1. 4种比较运算符总结

运算符 作用 示例(int a=10, b=3) 判断结果(真/假)
> 判断左边是否大于右边 a > b 真(10>3成立)
< 判断左边是否小于右边 a < b 假(10<3不成立)
== 判断左边是否等于右边(重点) a == b、a == 10 ab假,a10真
!= 判断左边是否不等于右边 a != b、a != 10 a!=b真,a!=10假

2. 关键提醒(新手避坑,重中之重)

  1. ==(等于)和 =(赋值)完全不同,不能混用:

✅ 正确:判断a是否等于10 → a == 10;

❌ 错误:判断a是否等于10 → a = 10;(这是赋值,不是判断)

  1. 比较运算符的结果是"真/假",在C++中,用1表示真,0表示假(打印时可直接看到);

  2. 比较运算符常用于判断条件,后续我们会结合"if语句"详细讲解,本讲先掌握"如何判断"即可。

3. 实战示例(直接复制运行)

演示比较运算符的用法,打印判断结果(1表示真,0表示假),重点区分 == 和 =:

cpp 复制代码
#include <iostream>

int main() {
    int a = 10;
    int b = 3;
    
    // 打印所有比较运算符的结果(1=真,0=假)
    std::cout << "a > b = " << (a > b) << std::endl;
    std::cout << "a < b = " << (a < b) << std::endl;
    std::cout << "a == b = " << (a == b) << std::endl;
    std::cout << "a == 10 = " << (a == 10) << std::endl;
    std::cout << "a != b = " << (a != b) << std::endl;
    std::cout << "a != 10 = " << (a != 10) << std::endl;
    
    // 重点提醒:不要混用 == 和 =
    std::cout << "a = 3, result = " << (a = 3) << std::endl;
    // 此时a的值已经被改成3,因为上面是赋值操作,不是判断
    
    return 0;
}

运行结果:

a > b = 1

a < b = 0

a == b = 0

a == 10 = 1

a != b = 1

a != 10 = 0

a = 3, result = 3

新手练习:定义变量 int score=85;,判断 score > 60、score == 85、score != 90 的结果,打印出来。

六、核心知识点4:逻辑运算符(极简讲解,够用即可)

逻辑运算符,核心作用是"判断多个条件的组合关系",零基础只需要掌握两种:&&(并且)、||(或者),不用深入理解,记住核心逻辑,能判断简单组合条件即可。

1. 2种逻辑运算符总结(极简版)

运算符 核心逻辑(极简记忆) 示例(int a=10, b=3, c=5) 结果(真/假)
& 并且:两个条件都成立,结果才是真;有一个不成立,就是假 (a > b) && (a > c)(10>3 并且 10>5) 真(1)
或者:两个条件有一个成立,结果就是真;两个都不成立,才是假

2. 关键提醒(极简避坑)

  1. &&(并且):要求"所有条件都满足",比如"成绩>60 并且 成绩<100",只有成绩在60-100之间,结果才是真;

  2. ||(或者):要求"至少一个条件满足",比如"成绩<60 或者 成绩>90",成绩不及格或优秀,结果都是真;

  3. 多个条件组合时,用括号 () 把每个条件括起来,更清晰(比如上面的示例)。

3. 实战示例(直接复制运行)

极简演示逻辑运算符的用法,结合比较运算符,判断组合条件:

cpp 复制代码
#include <iostream>

int main() {
    int score = 85;
    
    // 1. &&(并且):成绩>60 并且 成绩<100(及格且不是满分)
    bool pass_and_not_full = (score > 60) && (score < 100);
    
    // 2. ||(或者):成绩<60 或者 成绩>90(不及格或优秀)
    bool fail_or_excellent = (score < 60) || (score > 90);
    
    // 打印结果(1=真,0=假)
    std::cout << "(score > 60) && (score < 100) = " << pass_and_not_full << std::endl;
    std::cout << "(score < 60) || (score > 90) = " << fail_or_excellent << std::endl;
    
    return 0;
}

运行结果:

(score > 60) && (score < 100) = 1

(score < 60) || (score > 90) = 0

新手练习:修改score的值为55、95,分别运行代码,观察逻辑运算符的结果变化。

七、新手常见问题排查(避坑指南)

  1. 问题1:除法运算结果不符合预期(比如10/3=3,不是3.333) → 解决方案:确保至少有一个操作数是double类型(比如10.0/3,不是10/3)。

  2. 问题2:取余数%报错 → 解决方案:%只能用于int类型,不能用于double类型(比如10.5%3会报错,改成10%3即可)。

  3. 问题3:混用==和=,判断结果出错 → 解决方案:记住"判断等于用==,赋值用=",比如判断a是否等于10,写a==10,不是a=10。

  4. 问题4:逻辑运算符&&、||结果不符合预期 → 解决方案:用括号()括起每个条件,确保条件组合正确(比如(a>b)&&(a>c),不要漏写括号)。

  5. 问题5:+=、-=报错 → 解决方案:使用前必须先定义变量并赋初始值(比如先写int a=10;,再写a+=5;)。

八、动手练一练(巩固本讲内容,必做)

结合本讲运算符和上一讲变量知识,完成以下练习,建议实际编写代码运行,巩固所有知识点:

  1. 定义int a=12, b=4;,用算术运算符计算a+b、a-b、a*b、a/b、a%b,打印所有结果;

  2. 用赋值运算符:给a赋新值20,用a+=b修改a的值,用a-=3修改a的值,打印最终a的值;

  3. 定义int score=78;,用比较运算符判断score>60、score==78、score!=80,打印判断结果;

  4. 用逻辑运算符判断:(score>60)&&(score<80)、(score<60)||(score>90),打印判断结果。

九、本讲小结

  1. 算术运算符:重点掌握 +、-、*、/、%,记住整数除法取整数部分,%仅用于整数;

  2. 赋值运算符:核心 =,简化用法 +=、-=,记住 += 等价于 a=a+...,-= 等价于 a=a-...;

  3. 比较运算符:重点区分 == 和 =,判断结果只有真(1)和假(0);

  4. 逻辑运算符:极简掌握 &&(并且,都成立才真)、||(或者,一个成立就真);

相关推荐
端平入洛1 天前
auto有时不auto
c++
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1232 天前
matlab画图工具
开发语言·matlab
dustcell.2 天前
haproxy七层代理
java·开发语言·前端
norlan_jame2 天前
C-PHY与D-PHY差异
c语言·开发语言
哇哈哈20212 天前
信号量和信号
linux·c++
多恩Stone2 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
QQ4022054962 天前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
遥遥江上月2 天前
Node.js + Stagehand + Python 部署
开发语言·python·node.js
蜡笔小马2 天前
21.Boost.Geometry disjoint、distance、envelope、equals、expand和for_each算法接口详解
c++·算法·boost