认识C语言
看清C的设计哲学、编译链路与它真实的能力边界
按 空格/→ 演示下一步
全部页面点击任意一页,跳回舞台从这页播放
认识C语言
看清C的设计哲学、编译链路与它真实的能力边界
C语言的历史与特点
上页我们和C语言打了照面,知道它是面向底层的系统编程语言。但这页要深入它的「血脉」——1972年诞生至今,半个世纪操作系统、嵌入式、编译器底层依然离不开它。C凭什么活这么久?
刀刃极利、无护手,新手容易受伤;但专业厨师靠它完成别人做不到的精细活
算法及其表示
C 语言给了我们表达的工具,但工具本身不是目的。写程序是为了解决问题——解决问题的方法,就是算法。
食材=输入,步骤=确定性操作,成品=输出,必须有限步完成
C程序的操作过程
你在编辑器里写完 hello.c,按下「运行」就看到「Hello World」。但这一瞬间背后,代码悄悄经历了几个处理阶段,从人类可读的文本一步步蜕变成 CPU 能识别的 01 序列。
写稿→校对→翻译外文→排版印刷→装订成册,每步把上游产物加工成下游更接近成书的形式
C程序的基本结构
上一页我们走完了从源码到可执行文件的完整流程,但源码本身长什么样?一个C程序像一篇文章,有开头、有正文、有结尾——而且它有一套严格的写作规范。
幕前布景=预处理指令;主角登场=main()入口;每一幕=一个函数;演员退场=return
标识符、关键字和保留字
前面见过的`int main()`里,`int`编译器一见面就懂,`main`却可以随便换名字。它们属于不同的词类吗?规则又是什么?
自己起的工号=标识符;规定职位=关键字;HR预留编号=保留字
常量和变量
常量和变量:定义、要点与典型应用
数据类型
上一页我们说变量是『装数据的盒子』,但装水、装沙子、装石头,盒子大小形状能一样吗?C 语言用『数据类型』回答这个问题。
针线盒装小件、衣柜放大件——盒子规格决定装什么、装多少、怎么取用
C语言的语法规范和编程规
数据类型和变量这些零件都有了,下一步是用规范把它们写成合法、可读的代码。
违规必罚=编译报错,礼仪失当=同事抱怨;二者共同维护秩序
二级C辅导之C基础及C结构
二级C辅导之C基础及C结构:定义、要点与典型应用
二级C辅导之常量变量和数
前页搭好了C程序骨架,这页往里填料——数据。C里一切运算围绕'常量'和'变量'展开:常量是写死的值,变量是会变的值;理清种类、容量与转换规则,是后续所有运算和考试的基石。
格子尺寸=类型决定容量;标签=变量名;里头物品=值;空格子取物会拿到旧件
本节要点
- ✓C 语言长寿的根因:贴着硬件飞,兼顾抽象与控制
- ✓算法先于代码:先想清做什么,再想怎么做
- ✓变量 = 类型 + 名字 + 值,三者绑定,类型一旦确定不可改
- ✓标识符自由但有边界:见名知义、避开关键字、区分大小写
- ✓编译—链接—运行三步各自挑刺,从报错行号与类型入手排查
课后思考
请先独立思考每个问题,再对照参考答案验证思路。
参考答案编译型语言先把源代码整体翻译成机器码再执行,启动慢但运行效率高;解释型语言边解释边执行,开发快但运行慢。C需要为不同平台重新编译,但换来的是原生执行性能。
参考答案关键步骤:从2试除到√n,任何一步能整除就否定。算法的价值是把「做什么、怎么做」想清楚在先——代码只是这个思路的具体翻译,思路错了,代码再精美也跑不出正确结果。
参考答案编译器依赖大小写区分和变量声明来构建符号表、分配存储空间。去掉这些规则后,要么报错混乱,要么产生大量歧义代码。严格语法虽增加学习成本,但换来的是精确性和工程可靠性。