C语言 第〇章-绪论
C 语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。
一、计算机语言
1.计算机语言的发展
机器语言 → 符号语言和汇编程序 → 高级语言和编译程序
2.机器语言
二进制语言,由高电平和低电平所反映的0和1组成,能够被机器直接识别与接受。
3.符号语言和汇编程序
符号语言:对机器语言进行简化,例如用ADD代表由0和1组成的一串代表加法的机器指令,从而更方便阅读与理解。
汇编程序:用于转换符号语言的程序,将简单的符号指令转换为机器指令。
符号语言和汇编程序的缺点:增加的程序的可读性和可改型,但本质上只是对机器语言的简化,没有解决 一机一语言,一机一程序 的问题。
4.高级语言和编译程序:
高级语言:与符号语言的区别在于,高级语言从编程人员的思维而不是从机器出发。用更接近人类思考方式的语言,独立于机器编程。因为不依赖于机器本身的指令,所以是一种通用型语言。相比符号语言,更加易读且更易于移植。
编译程序:与编译程序只进行 符号 与 机器指令 之间的转换不同,编译程序需要针对不同的机器,将高级语言翻译为对应机器可以识别的机器指令。
通过高级语言和编译程序,使处理问题从 “解决一个机器的问题” 变成 “解决一个问题”。
二、高级语言的发展
1.面向过程的语言
普通版:
拿起衣服;
放进洗衣机;
拿起洗衣粉;
放进洗衣机;
拿起水管;
接上洗衣机;
伸出手指;
启动洗衣机;
函数版:
放入 ( 洗衣机 , 衣服 );
放入 ( 洗衣机 , 洗衣粉 );
放入 ( 洗衣机 , 水 );
启动 ( 洗衣机 );
数据不通,函数无法共用时:
放入 ( 洗衣机 , 衣服 );
丢入 ( 洗衣机 , 洗衣粉 );
接入 ( 洗衣机 , 水 );
启动 ( 洗衣机 );
- 面向过程从解决问题的步骤出发,自上而下逐步分析解决每一步做什么。
- 当调用函数时再为其选择对应数据,对象及其动作(数据及其运算)被人为分离。
- 围绕每一个过程构建函数,通过将相似的过程合并实现代码复用。
- 易于编写,性能更好,适用于简单任务。
2.面向对象的语言
洗衣机 . 加 ( 衣服 );
洗衣机 . 加 ( 洗衣服 );
洗衣机 . 加 ( 水 );
洗衣机 . 启动 ( );
- 面向对象从对象出发,基于事物构造方法。
- 对象自带方法,通过对象本身调用方法,对象及其动作(数据及其运算)被自然绑定。
- 围绕每一个对象构建方法,让对象自带其方法。
- 易于开发和维护,适用于大型项目。
参考
- C程序设计
- C Primer Plus
- C 语言教程 | 菜鸟教程