**
从零开始学习C
之
程序设计和C语言
1.1 什么是计算机程序
其实,计算机的每一个操作都是根据人们事先指定的指令进行的。
程序:是指一组计算机能识别和执行的指令。
总之,计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。所以,计算机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。
只有懂得程序设计才能真正了解计算机是这么工作的,才能更深入的使用计算机。
1.2 什么是计算机语言
人与人之间的交流需要通过语言。
人和计算机之间交流,也要解决语言问题。需要创建一种人与计算机都能识别的语言,这就是计算机语言。
计算机语言经历的几个发展阶段:
-
机器语言:计算机能直接识别和接受的二进制代码称为机器指令(machine
instruction),机器指令的集合就是计算机的机器语言(machine
language) -
符号语言:为了克服机器语言难记的缺点,就创造了符号语言(symbolic
language),它用一下英文字母和数字表示一个指令。如:ADD A,B (执行A+B =>A ,将寄存器A中的数与寄存器B中的数相加,放到寄存器A中)
计算机无法直接识别和执行符号语言,所以需要一种叫汇编语言的转换程序,把符号语言转换成机器指令。转换过程称为“代真”或“汇编”,,因此,符号语言又称符号汇编语言(symbolic assembler language)或汇编语言(symbolic language)。
- 高级语言:为了克服低级语言的缺陷,在20世纪50年代创造出了第一个计算机高级语言——FORTRAN语言。它很接近于人们习惯使用的自然语言和数学语言。
当然,计算机也是不能直接识别高级语言的,需要一种称为“编译器”的软件,把用高级语言写的程序(源程序)转换成为机器指令的程序(目标程序),然后让计算机执行机器指令程序,得到结果。
机器语言的一个语句往往对应多条机器指令。
机器语言经历了不同的发展阶段:
(1) 非结构化语言。初期的语言属于非结构化语言,编程风格比较随意,只要符合语法规则即可,没有严格的语法要求,程序中的流程可以随意跳转。
(2) 结构化语言。为了解决语言的结构问题,规则程序必须由具有良好特性的基本结构(顺序结构,分支结构,循环结构)构成,程序中的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。
(3) 面向对象的语言。简介略。
1.3 C语言的特点
C语言是国际上广泛流行的计算机高级语言。
C语言主要有一下一些主要特点:
(1) 语言简洁、紧凑、使用方便、灵活。C语言一共有37个关键字。
(2) 运算符丰富
(3) 数据类型丰富
(4) 具有结构化控制语句。C语言完全是模块化和结构化的语言。
(5) 语法限制不太严格,程序设计自由度大。
(6) C语言允许直接访问物理地址能进行(bit)操作,能实现汇编语言大部分功能,可以直接对硬件进行操作。
(7) C语言编写的程序可移植性好。几乎在所有的计算机系统中都可以使用C语言。
(8) 生成目标代码质量高,程序执行效率高。
1.4 最简单的C语言程序
#include<stdio.h>
int main()
{
printf("Hello world");
return 0;
}
运行结果
每一个C语言程序都必须有一个main函数。函数体由花括号{}括起来。
“stdio.h”是系统提供的一个文件名,文件后缀.h 的意思是头文件(header file),因为这些文件都是放在程序各个文件模块的开头的。
1.4 C语言的程序结构
(1)一个程序由一个或多个源程序文件组成
1.预处理命名。如#include<stdio.h>
C编译系统在对源程序翻译以前,先由一个预处理器对原程序进行预指令处理。
2.全局声明。即在函数之外进行的数据声明。 在函数外面的声明变量称为全局变量。
3.函数定义。略
(2)函数是C程序的主要组成部分
一个C语言程序由一个或多个函数组成。其中必须包含一个main函数。(3)一个函数包括两个部分
1.函数首部。即函数的第一行,包括函数名,函数类型,函数属性,函数参数(形式参数),函数类型等
。
一对函数名后面必须跟一对圆括号。
2.函数主体。即函数首部下面的花括号内部分。
函数体一般包括一下两部分:
声明部分
执行部分
(4)函数总是从main函数开始执行的
(5)程序中对计算机的操作是由函数中的C语句完成的
(6)在每个数据声明和语句的最后必须有一个分号。
(7)C语言本身不提供输入输出语句。输入和输出操作是由库函数中的 scanf 和printf等函数来完成的。