C/C++常识

一、

bool 是 C++ 布尔类型,用来表示逻辑值,只有两种取值:

  • true:真(等价数值 1
  • false:假(等价数值 0

二、

逻辑运算符

运算符 名称 格式 规则
! 逻辑非(取反) !a a 为 true → false;a 为 false → true
&& 逻辑与 a && b 两边全 true,结果才 true;否则 false
` ` 逻辑或 `a b` 任意一边 true,结果就 true;全 false 才 false

关键特性:短路求值(必考)

  1. a && b:如果 a 是 false,不会执行 b
  2. a || b:如果 a 是 true,不会执行 b

三、

关系(比较)运算符 → 返回 bool

> < >= <= == != 表达式运算结果一定是 bool

四、算术运算符(+ - * / %

算术运算得到数字 ,数字本身不是 bool ,只有在需要 bool 的地方才隐式转换: 转换规则复习:0→false,所有非 0(正数、负数)→true

五、

assert断言宏(不是函数!),定义在头文件:

复制代码
#include <cassert>

作用:检测一个条件是否成立

  • 如果括号内表达式 == true:什么都不做,程序继续运行
  • 如果括号内表达式 == false:程序直接终止,打印报错信息(文件名、行号、失败条件)

六、

一、while 循环

语法

复制代码
while(条件表达式)
{
    循环体;
}
  1. 先判断条件(表达式隐式转 bool)
  2. 条件为 true → 执行循环体
  3. 执行完回到开头再次判断条件
  4. 条件 false → 直接跳出循环

特点:先判断,后执行。条件不成立,循环体一次都不运行。

复制代码
int i = 1;
while(i <= 10)
{
    cout << i << " ";
    i++; // 一定要更新变量,否则死循环!
}

二、do while 循环

复制代码
do
{
    循环体;
}while(条件); // 末尾分号不能丢!

执行流程:

  1. 先执行一次循环体
  2. 再判断条件
  3. true:继续循环;false:退出

特点:先执行,后判断。循环体至少执行 1 次!

复制代码
int i = 1;
do
{
    cout << i << " ";
    i++;
}while(i <= 10);

三、for 循环(最常用)

复制代码
for(表达式1; 表达式2; 表达式3)
{
    循环体;
}
  • 表达式 1:初始化(只执行 1 次)
  • 表达式 2:循环条件(判断,bool)
  • 表达式 3:每次循环结束后执行(更新变量)

执行顺序: 初始化 → 判断条件 → 循环体 → 更新 → 判断条件 → 循环体......

复制代码
// i从1到10
for(int i = 1; i <= 10; i++)
{
    cout << i << " ";
}

灵活写法(三个表达式都可以省略)

复制代码
for(;;) // 等价 while(true) 死循环
{
    
}

四、循环控制关键字 break /continue

1. break

直接跳出当前整个循环,循环彻底结束

复制代码
for(int i = 1; i <= 10; i++)
{
    if(i == 5)
        break;
    cout << i; // 输出1 2 3 4
}

2. continue

终止本次循环,立刻进入下一轮条件判断

复制代码
for(int i = 1; i <= 10; i++)
{
    if(i == 5)
        continue;
    cout << i; // 输出1234678910,跳过5
}

⚠️ 注意:continuewhile 中使用时,要小心变量更新位置,防止死循环!

复制代码
// 危险写法!i++ 在continue后面,永远执行不到
while(i <= 10)
{
    if(i == 5) continue;
    i++; 
}
相关推荐
小小龙学IT29 分钟前
FlatBuffers 深度解析:Google 开源零拷贝序列化库完全指南
c++·开源
wuminyu1 小时前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
SWAGGY..1 小时前
【C++进阶】:(1)继承机制详解
java·jvm·c++
听取WA声一片(无恶意)2 小时前
CSP-J/CSP-S 深度优先搜索(DFS)完全讲义
c++·算法·深度优先
码匠许师傅2 小时前
【C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局
java·c++·面试
加油码3 小时前
动静态库的链接底层原理(进阶版)
linux·c++
一木 之林3 小时前
三、内存管理、指针与堆栈
c语言·jvm·c++
初夏睡觉5 小时前
原创题目 - 空壳恋爱
c++·算法·dp·oi·信息学·原创题目·值得挑战的题目
间歇性努力持续性发呆的野生快乐选手5 小时前
stl容器使用和算法简介
数据结构·c++
沙盘客6 小时前
AFSIM 官方案例库全景与解读方法论
c++·经验分享·后端