《C++语言程序设计教程》基础语法全解析:从入门到精通
C++ 入门必看!从零开始读懂《C++语言程序设计教程》核心基础
配套学习:《C++语言程序设计教程》第一章 ~ 第四章
适合人群:编程零基础 / 想系统补 C++ 基础的初学者
阅读时长:约 12 分钟
一、前言
很多同学一上来就被 C++ 的“指针、引用、模板、面向对象”劝退,其实《C++语言程序设计教程》这本书的设计思路非常友好:先语法,后思想。本文把书里前四章最常考、最常用的“地基知识”整理成一篇博客,配合代码示例,看完就能动手写小程序。
学习 C++ 就像盖房子,数据类型是砖,运算符是水泥,控制流是图纸。今天我们先把这三样搞定。
二、目录
数据类型与变量
常量与宏定义
运算符与表达式
流程控制语句
综合小案例:九九乘法表
常见易错点总结
三、数据类型与变量
C++ 的数据类型分为四大类:基本类型、构造类型、指针类型、空类型。初学阶段主要掌握基本类型即可。
表格
类型 关键字 占用字节(32位) 示例
整型 int 4 int age = 18;
短整型 short 2 short s = 1;
长整型 long 4 long l = 100;
单精度浮点 float 4 float f = 3.14f;
双精度浮点 double 8 double d = 3.14;
字符型 char 1 char c = ‘A’;
布尔型 bool 1 bool flag = true;
变量定义的三要素:数据类型 + 变量名 + 初始值
cpp
#include
using namespace std;
int main() {
int age = 20; // 整型变量
double score = 95.5; // 浮点型
char grade = ‘A’; // 字符型
bool isPass = true; // 布尔型
cout << "年龄: " << age << endl; cout << "分数: " << score << endl; cout << "等级: " << grade << endl; cout << "是否通过: " << (isPass ? "是" : "否") << endl; return 0;}
💡 小贴士:float 类型的字面量要加后缀 f,否则编译器会先转成 double 再截断,可能造成精度损失。
四、常量与宏定义
常量是不可修改的"固定值",C++ 中有两种常见定义方式:
cpp
// 方式 1:宏定义(预处理阶段,不推荐用于类型检查)
#define PI 3.14159
#define MAX 100
// 方式 2:const 常量(编译阶段,有类型检查,推荐)
const double EPS = 1e-6;
const int MIN_SCORE = 60;
为什么要用 const 而不是#define?
const 有数据类型,编译器能做类型检查
const 有作用域,#define是全局替换
调试时 const 常量有名字,#define替换后看不到原名名
五、运算符与表达式
C++ 运算符分为以下几类,初学阶段重点掌握前 4 种:
表格
类别 运算符 示例
算术运算符 + - * / % a + b, a % b
赋值运算符 = += -= *= /= a += 5 // 等价于 a = a + 5
关系运算符 > < >= <= == != a == b
逻辑运算符 && || ! a && b
位运算符 & | ^ ~ << >> a << 2
条件运算符 ?: a > b ? a : b
cpp
int a = 10, b = 3;
cout << a / b; // 输出 3(整数除法,结果取整)
cout << a % b; // 输出 1(取余)
cout << (a > b); // 输出 1(true 转为 1)
cout << (a && b); // 输出 1(两边都为真,结果为真)
⚠️ 易错点 1:== 是判断相等,= 是赋值。初学者经常写错,编译器不会报错,但结果完全不一样。
⚠️ 易错点 2:&& 和 || 具有"短路特性"。例如a == 0 && b++当a==0为假时,b++不会执行。。
六、流程控制语句
6.1 顺序结构
程序从上到下逐行执行,是最基础的结构。
6.2 选择结构
cpp
#include
using namespace std;
int main() {
int score;
cin >> score;
if (score >= 90) { cout << "优秀" << endl; } else if (score >= 75) { cout << "良好" << endl; } else if (score >= 60) { cout << "及格" << endl; } else { cout << "不及格" << endl; } // 三目运算符的简洁写法 string result = (score >= 60) ? "通过" : "重考"; cout << result << endl; return 0;}
6.3 循环结构
cpp
// 1. for 循环:已知循环次数
for (int i = 1; i <= 5; i++) {
cout << “第 " << i << " 次循环” << endl;
}
// 2. while 循环:未知循环次数
int n = 1;
while (n <= 5) {
cout << n << " ";
n++;
}
cout << endl;
// 3. do-while 循环:至少执行一次
int m = 1;
do {
cout << m << " ";
m++;
} while (m <= 5);
cout << endl;
6.4 跳转语句
cpp
// break:跳出当前循环
for (int i = 1; i <= 10; i++) {
if (i == 6) break; // i=6 时跳出循环
cout << i << " ";
}
// 输出:1 2 3 4 5
// continue:跳过本次循环,继续下一次
for (int i = 1; i <= 5; i++) {
if (i == 3) continue; // 跳过 i=3
cout << i << " ";
}
// 输出:1 2 4 5
七、综合小案例:九九乘法表
把今天学的"循环 + 输出"组合起来:
cpp
#include
using namespace std;
int main() {
for (int i = 1; i <= 9; i++) { // 外层:被乘数
for (int j = 1; j <= i; j++) { // 内层:乘数
cout << j << “×” << i << “=” << (i * j) << “\t”;
}
cout << endl; // 每行结束换行
}
return 0;
}
运行效果:
1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 ... 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81 ```1 八、常见易错点总结 表格 错误写法 正确写法 说明 if (a = 5) if (a == 5) 一个 = 是赋值,不会报错但逻辑全错 if (a > 1 && a < 10) 写成 if (1 < a < 10) 拆成两个判断 C++ 不支持链式比较 for (int i = 0; i < 10; i--) i++ 死循环 float f = 3.14; float f = 3.14f; 加 f 后缀避免精度损失 char c = "A"; char c = 'A'; 字符用单引号,字符串才用双引号 九、写在最后 本文覆盖了《C++语言程序设计教程》前四章的核心内容,数据类型、运算符、流程控制是后续学习函数、数组、指针、类的基础。建议读者把每个代码示例都在编译器里敲一遍并运行 —— C++ 是一门"练中学"的语言,光看是记不住的。 下一篇博客我会写 C++ 函数与数组进阶,包括函数参数传递、数组与指针的关系、字符串处理等更深入的内容,敬请期待! 📚 推荐练习: 1. 输入三个整数,输出最大值和最小值 2. 判断一个数是否为素数 3. 用 * 打印一个等腰三角形角形 如果本文对你有帮助,欢迎 点赞 👍 收藏 ⭐ 关注 ➕,有疑问可以在评论区留言~ 本文基于《C++语言程序设计教程》整理总结,代码均为原创示例。