
本文是 C 系列教程的第 1 篇。本系列共 30 篇从零基础一路讲到现代 CC11/14/17/20、STL、并发编程与工程实战。本篇目标认识 C、搭建开发环境、写出并理解第一个程序掌握变量与基本数据类型。一、C 是什么C 是一门编译型、静态类型的通用编程语言由 Bjarne Stroustrup 于 1983 年在贝尔实验室基于 C 语言扩展而来。它既保留 C 语言的高性能与底层控制能力又引入了面向对象、泛型编程和现代抽象机制。1.1 为什么学 C优势说明性能极高可直接操作内存、无运行时开销的抽象应用广泛游戏引擎Unreal、操作系统、浏览器Chrome、数据库、金融高频交易就业需求大后端、嵌入式、音视频、图形学、自动驾驶等领域核心语言现代演进C11/14/17/20 大幅改善易用性与安全性1.2 C 版本演进C98/03经典 C面向对象与模板基础。C11里程碑版本引入 auto、智能指针、lambda、移动语义。C14泛型 lambda、返回类型推导增强。C17结构化绑定、if constexpr、std::optional、filesystem。C20概念concepts、范围ranges、协程、三路比较。1.3 编译型语言的工作流程源代码(.cpp) --编译器-- 目标代码(.obj) --链接器-- 可执行程序(.exe) --运行-- 输出结果与 Python 等解释型语言不同C 代码需要先编译再运行这也带来了更高的执行效率。二、环境搭建2.1 Windows 方案推荐使用Visual Studio社区版免费或Visual Studio Code MinGW-w64安装 VS Code安装 C/C 扩展。安装 MinGW-w64含 g 编译器并加入 PATH。命令行验证g --version。2.2 第一个程序的编写与编译新建hello.cpp#includeiostream// 引入输入输出库usingnamespacestd;// 使用标准命名空间intmain(){coutHello, World!endl;// 输出一行文本return0;// 返回 0 表示程序正常结束}在终端编译并运行g hello.cpp-ohello.exe ./hello.exe输出Hello, World!2.3 逐行拆解第一个程序代码作用#include iostream预处理指令引入标准输入输出头文件using namespace std;声明使用 std 命名空间之后可直接写 coutint main()主函数程序入口每个程序必须有且仅有一个cout ...输出流操作符将内容送到标准输出endl换行并刷新缓冲区return 0;返回值给操作系统0 表示成功三、变量与基本数据类型3.1 基本数据类型类型大小常见取值范围典型说明bool1 字节true / false布尔型char1 字节-128 ~ 127字符型int4 字节约 ±21 亿整型float4 字节约 7 位有效数字单精度浮点double8 字节约 15 位有效数字双精度浮点3.2 变量定义与初始化#includeiostreamusingnamespacestd;intmain(){// 多种初始化方式intage20;// C 风格初始化intscore(95);// 构造函数风格intlevel{3};// 列表初始化C11 推荐防窄化doublepi3.14159;chargradeA;boolisPasstrue;cout年龄ageendl;cout分数scoreendl;cout等级levelendl;cout圆周率piendl;cout成绩等级gradeendl;cout是否通过(isPass?是:否)endl;return0;}变量命名规则只能由字母、数字、下划线组成且不能以数字开头。不能与关键字重名如 int、if、class。建议使用有意义的名称如studentCount而非s。3.3 常量#includeiostreamusingnamespacestd;#definePI3.14// 宏常量预处理阶段替换intmain(){constdoubleE2.71828;// const 常量编译期检查constexprintMAX100;// 编译期常量C11coutPI PIendl;coutE Eendl;coutMAX MAXendl;return0;}四、输入输出4.1 基本输入输出#includeiostream#includestringusingnamespacestd;intmain(){string name;intage;cout请输入你的姓名;cinname;// 从键盘读取字符串遇空白停止cout请输入你的年龄;cinage;cout你好name你今年 age 岁。endl;return0;}4.2 读取带空格的行#includeiostream#includestringusingnamespacestd;intmain(){string fullName;cout请输入全名可含空格;getline(cin,fullName);// 读取一整行包含空格cout你好fullNameendl;return0;}五、运算符初步5.1 算术运算符#includeiostreamusingnamespacestd;intmain(){inta10,b3;couta b (ab)endl;// 13couta - b (a-b)endl;// 7couta * b (a*b)endl;// 30couta / b (a/b)endl;// 3整数除法截断couta % b (a%b)endl;// 1取余couta / 3.0 (a/3.0)endl;// 3.33333浮点除法return0;}5.2 类型转换#includeiostreamusingnamespacestd;intmain(){inttotal7,count2;doubleavg1total/count;// 3整数除法先执行doubleavg2static_castdouble(total)/count;// 3.5显式转换doubleavg3total/2.0;// 3.5隐式提升coutavg1endl;coutavg2endl;coutavg3endl;return0;}六、实战简易加法计算器综合本篇知识编写一个支持两个数的加减乘除计算器#includeiostreamusingnamespacestd;intmain(){doublenum1,num2;charop;cout 简易计算器 endl;cout请输入第一个数;cinnum1;cout请输入运算符 - * /;cinop;cout请输入第二个数;cinnum2;doubleresult;boolvalidtrue;switch(op){case:resultnum1num2;break;case-:resultnum1-num2;break;case*:resultnum1*num2;break;case/:if(num20){cout错误除数不能为 0endl;validfalse;}else{resultnum1/num2;}break;default:cout错误不支持的运算符endl;validfalse;}if(valid){coutnum1 op num2 resultendl;}cout感谢使用再见endl;return0;}运行示例 简易计算器 请输入第一个数10 请输入运算符 - * // 请输入第二个数4 10 / 4 2.5 感谢使用再见总结本篇介绍了 C 的历史与版本演进、环境搭建、第一个程序的结构、变量与基本数据类型、常量、输入输出和运算符基础并用简易计算器串联实战。重点要掌握main函数结构、变量声明与初始化、cin/cout的使用、整数除法与类型转换的坑。下一篇将深入讲解运算符、表达式与控制流程if/switch/循环敬请期待