当前位置: 首页 > news >正文

《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++语言程序设计教程》整理总结,代码均为原创示例。
http://www.jsqmd.com/news/1075493/

相关文章:

  • 电子教科书下载工具推荐,小初高课本合集一键获取
  • 【HCIA-AI笔记(微认证1)】2.7 应用使能套件
  • 入门级——Karpathy Skills:70行的紧箍咒
  • 疫情早期防控实战推演:数据清洗、R₀动态建模与基层决策翻译
  • 基于NXP FMan与IEEE 1588实现纳秒级硬件时间戳同步
  • AI 赋能湾区婚恋服务,寻爱相亲网打造珠三角一体化 AI 红娘匹配体系
  • 猫抓浏览器扩展:专业级资源嗅探与媒体下载技术深度解析
  • QQ空间数据备份实用指南:轻松保存你的青春记忆
  • Superhuman 10 亿美元加持,收购 GPTZero 构建 AI 内容生产验证全链条
  • Ryujinx终极指南:深度解析开源Switch模拟器的核心技术架构与高级配置
  • GLM-5 Coding Pro深度解析:结构化推理与工程语义一致性升级
  • LangFlow终极指南:3步打造企业级AI工作流的可视化神器
  • GitHub Desktop中文汉化工具:3分钟实现界面本地化
  • 图基础模型落地实战:从论文指标到生产系统的工程真相
  • 百考通:AI赋能答辩PPT,精准抓取,助力每一份研究从良好开端走向卓越成果
  • Claude Code介绍
  • 如何高效使用开源智能激活工具:Windows与Office一站式解决方案
  • JumpServer堡垒机安全检测工具BlackJump设计与实战
  • 字节后端开发实习生 AI Lab 面经:不太看 OS 和网络,更看代码能力和算法思维
  • 工业场景YOLO落地踩坑实录:光照、遮挡、小目标的“三板斧”解法
  • 终极指南:免费开源Switch模拟器Ryujinx的完整配置与性能优化方案
  • 开源AI的最后一公里:用区块链实现可验证的分布式训练
  • MuleSoft+LangChain企业AI编排:数据集成与智能推理的分层实践
  • Agent不是万能药!企业落地AI智能体的5个反共识与边界认知
  • 实操Ubuntu在线升级日志22.04.5 LTS To Ubuntu 24.04.4 LTS
  • Jackson反序列化高危漏洞深度剖析与立体化防御指南
  • 2026下半年AI Agent风向标:从“对话交互”到“端到端执行”的范式转移
  • iOS激活锁绕过终极指南:5分钟免费解锁iPhone的完整教程
  • MCF51QW256嵌入式MCU实战:硬件加密、低功耗与DMA协同设计
  • 拆解12.8分SCI:利用 Gemini 3.5 这一招写出顶刊级摘要!