C语言程序设计基础(01)——计算机与程序设计基础
写在前面
我刚上大学的时候,学的第一门计算机编程语言就是 C语言,当时觉得这仿佛是天书,毕竟脑子里只有中学数学课上那点简单的流程图和VB概念,但是随着多年的练习和开发使用,我渐渐地开始掌握并喜欢上了这门语言,并且也开始学习C++、C#、JAVA等其它编程语言。不得不说,C语言的学习为我打下了良好的编程基础,同样也让我越来越清晰地认识到自己的不足。如今时代呈现指数式发展,尤其在IT等行业, 必须保证自己永远在学习新的知识技能,否则迎接你的就是淘汰。
大一课堂使用的课本是《C语言程序设计(第2版)》(姚琳 主编,屈微 副主编),虽然课本上也有一些小的瑕疵,但掩盖不了它开蒙启智的光辉。搬砖之余,在这里整理回顾下C语言的基础知识,感谢当年老师细致入微的指导,帮助我们解决了程序上数不尽的bug,为我们打下了良好的编程基础。
一、计算机组成及基本原理
计算机系统构成:
- 硬件系统
- 主机
- 内存储器(内存)
- 中央处理器(CPU,Central Processing Unit)
- 运算器
- 控制器
- 外部设备(外设)
- 输入输出设备
- 外存储器(外存)
- 主机
- 软件系统
- 应用软件
- 系统软件
- 操作系统
- 语言处理程序
- 服务程序
完整的计算机系统包含两个部分:硬件系统、软件系统。二者相辅相成,仿佛躯体和灵魂不可分割。
1、计算机硬件系统
(1)概念
组成计算机的各种电磁、机械部件和设备装置的总称,硬件(Hard ware) 系统是计算机实现自动控制和运算的物质基础。
(2)冯·诺依曼结构
组成:运算器、存储器、控制器、输入设备、输出设备
。
特点:程序和数据以二进制形式存在存储器中,在控制器的指挥下,自动从存储器中取指令并执行。1
- 运算器
对数据进行处理和运算。基本操作:算术运算、逻辑运算。
包括算术逻辑单元(ALU,Arithmetic Logic Unit)和寄存器。 - 存储器
用来存储程序和数据。由许多存储单元组成,每个单元有自己的地址,可根据地址找到所需数据和程序。
分为两类:
①内存储器(主存储器):存储当前要执行的程序和数据以及中间结果和最终结果。
②外存储器(辅助存储器):长期存储大量暂时不参与运算的数据和程序以及运算结果。 - 控制器
指挥计算机各部件协调工作。控制:将输入设备输入的程序和数据存入存储器,按照程序要求指挥运算器进行运算处理并把结果再存入存储器中,最后将结果传给输出设备。
主要组成部分:
①程序计数器(PC,Program Counter):存放当前要执行的指令地址,有自动加1的功能。
②指令寄存器(IR,Instruction Register