野牛程序员讲少儿编程之——C++ assert 用法
🦬 野牛程序员讲少儿编程之——C++ assert
用法
小朋友们,今天来聊聊 C++ 里的“秘密检查员”——assert
!assert
是什么?简单来说,就是 “调试的放大镜”🔍,
能帮忙快速发现代码里的问题,防止程序崩溃。
🎯 什么是 assert
?
assert
全名是 Assertion(断言),它的作用是:
检查某个条件是否满足,如果不满足,程序就会直接报错并停止运行!🚨
就像考试时,老师要求:"分数必须在 0 到 100 之间!"
如果发现有人考了 -10
分,就马上喊停:“不对劲!出问题了!”
🚀 assert
的基本用法
在 C++ 里,assert
需要引入 <cassert>
头文件:
#include <iostream> #include <cassert> // 引入断言库 using namespace std; int main() { int age = -5; // 一个错误的年龄 assert(age >= 0 && age <= 120); // 断言:年龄必须是 0 到 120 之间 cout << "你的年龄是: " << age << endl; return 0; }
运行结果:
Assertion failed: age >= 0 && age <= 120, file main.cpp, line 9
🚨 程序崩溃了! assert
发现 age = -5
不符合要求,马上停止程序,防止后面出大问题!
🧐 assert
怎么工作?
📌 assert(条件)
如果条件满足,程序继续运行。
如果条件不满足,程序会 直接报错并终止,还会告诉在哪里出问题了。
🎮 野牛程序员举个小游戏:检查分数
想象写了一个成绩检查系统,要求分数 0 ~ 100,否则报错!
#include <iostream> #include <cassert> using namespace std; void checkScore(int score) { assert(score >= 0 && score <= 100); // 确保分数合法 cout << "分数 " << score << " 是有效的" << endl; } int main() { checkScore(85); // 正常 checkScore(-10); // 这里会报错 checkScore(120); // 这里也会报错 return 0; }
运行结果:
分数 85 是有效的!
Assertion failed: score >= 0 && score <= 100, file main.cpp, line 7
🚨 程序崩溃在 checkScore(-10)
!
因为 assert
发现 -10
这个分数不可能,直接喊停!
🎯 assert
用在哪里?
✅ 1. 防止错误输入
比如年龄不能是负数,直接用 assert
检查:
void setAge(int age) { assert(age >= 0); // 年龄不能是负的! cout << "年龄设置成功: " << age << " 岁" << endl; }
✅ 2. 确保数组访问不越界
int arr[] = {1, 2, 3, 4, 5}; int index = 10; assert(index >= 0 && index < 5); // 5 个元素,索引必须在 0~4 之间! cout << "你访问了数组的第 " << index << " 个元素: " << arr[index] << endl;
🚨 assert
发现 index=10
,超出了数组范围,直接报错!
✅ 3. 确保计算不会出错
int divide(int a, int b) { assert(b != 0); // 除数不能是 0! return a / b; }
如果 b=0
,程序就会直接报错,避免“除数为 0”导致的崩溃!
🛠 assert
在正式程序里会自动关闭
assert
是调试工具,正式发布的程序不需要它。
可以在 编译时加 #define NDEBUG
关闭 assert
:
#define NDEBUG // 关闭 assert #include <cassert> assert(2 + 2 == 5); // 这行代码不会再生效
这样 正式发布的程序不会崩溃,而在开发阶段还能检查错误!✅
🎉 野牛程序员总结
✅ assert
检查代码中的条件,如果不满足,就报错停止。
✅ 防止输入错误、数组越界、除数为 0 等问题!
✅ 只在调试阶段生效,正式发布时可以关闭。
小朋友们,快去试试 assert
,让代码更安全吧!🚀

- 上一篇:怎么训练狗叼自己的碗
- 下一篇: