01-C语言概述
一、计算机和软件常识
1、计算机运行原理
1)硬件基本组成:硬盘、内存、CPU
2)各个部件之间的运作协调
![](https://img.haomeiwen.com/i3289929/656efcb70d610297.png)
2.计算机只能识别0和1
1)0和1组成的指令
2)0和1组成的数据
3.计算机和软件的联系
1)软件的基本概念:指令的集合
2)软件的安装运行过程
- 安装在硬盘
- 运行在内存
3)为什么要开发软件:写出能控制计算机的指令
4.计算机语言
1)一门跟计算机打交道的语言
2)方便写出一连串的指令
二、计算机语言发展史
![](https://img.haomeiwen.com/i3289929/acc18077466ff3de.png)
1.机器语言
1)简介:所有代码里面只有0和1,每一条指令称为“机器指令”
2)优点
- 代码能被计算机直接识别,直接对硬件产生作用,程序的执行效率非常高
- 能直接访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等
3)缺点
-
程序全是些0和1的指令代码,可读性差,还容易出错
0和1的指令代码
-
对硬件的依赖性很强,因此不同型号计算机的机器语言又不一样。也就是说,如果2台不同型号的机器想实现一样的功能,需要编写2套完全不同的代码
-
要熟记所用计算机的全部指令和指令的涵义,指令又多又难记
4)使用场合
综上所述,机器语言很难掌握和推广,现在除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了
2.汇编语言
1)简介:用英文单词等符号代替机器指令
2)优点
- 像机器语言一样,可以直接访问、控制计算机的各种硬件设备
- 占用内存少,执行速度快
3)缺点
- 不同的机器有不同的汇编语言语法和编译器,代码缺乏可移植性,也就是说,一个程序只能在一种机器上运行,换到其他机器上就不能运行
- 符号非常多、难记,即使是完成简单的功能也需要大量的汇编语言代码,很容易产生BUG,难于调试
- 必须对硬件非常了解,开发效率很低,周期长且单调
4)使用场合
- 操作系统内核、驱动程序、单片机程序
- 软件的加密、解密、破解
- 病毒的制作、防治
- 程序的调试、分析
3.高级语言
1)简介:接近自然语言
2)优点
- 简单、易用、易于理解,语法和结构类似于普通英文
- 远离对硬件的直接操作,使得一般人经过学习之后都可以编程,而不用太熟悉硬件知识
- 一个程序还可以在不同的机器上运行,具有可移植性
3)缺点
- 程序不能直接被计算机识别,需要经编译器翻译成二进制指令后,才能运行到计算机上
4)种类:C语言、C++、C#、Java、Objective-C等
4.三种语言的对比
分别用机器语言、汇编语言、C语言(高级语言)来写一个计算1+1的程序
1)机器语言:简直是天书!!!
10111000 00000001
00000000 00000101
00000001 00000000
2)汇编语言:可读性稍微好一点,但是麻烦
MOV AX,1
ADD AX,1
3)C语言:精简、通俗易懂
1+1
四、C语言简介
1.简史
1)C语言于1972年发明,首次使用是用于重写UINX操作系统(UNIX以前主要是用汇编语言写的,它奠定了操作系统的基础)
2)随着UNIX操作系统的成功,C语言也得到了大幅度地推广,被先后使用到大、中、小、微型主机上,至今还是世界上最流行、使用最广泛的高级程序设计语言之一
3)C语言是一门面向过程的语言,非面向对象的语言
![](https://img.haomeiwen.com/i3289929/9b70ec01313c23f7.png)
2.特点
1)丰富的运算符
2)丰富的数据类型
3)可以直接操作硬件
4)高效的目标代码
5)可移植性好
3.主要用途
1)编写系统软件、图形处理、单片机程序、嵌入式系统开发
2)编写游戏外挂
3)编写android程序
4)编写iOS程序
……
4.版本问题
1)1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作
2)1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C
3)1999年,国际标准化组织ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,命名为C99
4)2011年12月8日,ISO正式公布C语言新的国际标准草案:C11