第1章 C语言概述
C语言出现的历史背景
计算机语言的发展
机器语言→汇编语言(低级语言)→高级语言
优点:可读性和可移植性好
缺点:难以实现汇编语言的某些功能
优点:可以直接对硬件进行操作
缺点:依赖于计算机硬件,程序的可读性和可移植性较差
C语言的特点
C语言的主要特点:
语言简洁、紧凑,使用方便、灵活。(32个关键字,9种控制语句;程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分,表1.1比较了C与PASCAL)
运算符丰富。(34种)
数据结构丰富,具有现代化语言的各种数据结构。(强调指针)
具有结构化的控制语句。(用函数作为程序的模块单位,便于实现程序的模块化)
语法限制不太严格,程序设计自由度大。
C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
生成目标代码质量高,程序执行效率高。(比汇编程序生成的目标代码效率低10%~20%)
可移植性好。(基本上不做修改就能用于各种型号的计算机和各种系统)
C程序的构成特点
C程序是由函数构成的。函数是C程序的基本单位。易于实现程序的模块化。
函数的构成
函数的首部:函数名,函数类型,函数属性,函数参数(形参)名,参数类型。
函数体(声明部分:定义变量;执行部分:若干语句)
一个C程序总是从main函数开始执行的。
C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。没有行号。
语句以分号结尾。(最后一句也要有分号)
C语言本身没有I/O语句。由库函数来实现I/O。(易于移植)
可以用/* …… */对C程序中的任何部分作注释。
第2章 程序的灵魂——算法
著名计算机科学家Nikiklaus Wirth提出了一个公式:数据结构+算法=程序。
程序包含两个方面的内容:
数据结构:指定数据的类型和数据的组织形式
算法:操作步骤。
程序还包含了其它因素:程序=算法+数据结构+程序设计方法+语言工具和环境
怎样表示一个算法
结构化程序设计方法
结构化程序就是用高级语言表示的结构化算法。由三种基本结构构成的程序必然是结构化程序,这种程序便于编写、阅读、修改和维护。
结构化程序设计方法的基本思路是,把一个复杂问题的求解过程分解。有两种不同的方法:自顶向下,逐步细化和自下而上逐步积累。
第3章 数据类型、运算符与表达式
C的数据类型
整型
字符型
基本类型 单精度型
实型(浮点型)
双精度型
枚举类型(11)
数据类型 数组类型(7)
构造类型 结构体类型(11)
共同体类型(11)
指针类型(10)
空类型
在程序中所使用的数据都必须指定其数据类型(强制类型定义,这是与Basic不同的。和Pascal相同。这样可以使得程序更具有健壮性)。但是C对类型的要求并不是很严格。
常量与变量
常量的定义:在程序运行过程中,其值不能被改变的量称为常量。
常量的分类
根据数据类型分:各种类型的常量
字面常量或直接常量:从其字面形式即可判别。
符号常量或标识符形式的常量:以一个标识符代表一个常量。
符号常量使用举例
#define PRICE 30
main ()
{
int num,total;
num=10;
total=num*PRICE;
printf(“total=%d”,total);
}
使用符号常量的好处
含义清楚。提高程序的可读性。(比较:area=PI*r*r与area=3.14*r*r)
在需要改变一个常量时能做到“一改全改”。
变量的定义:其值可以改变的量成为变量。
变量所包含的要素:
一个名字,在内存中占据一定的存储单元,在存储单元中存放变量的值。(注意区分数学上的变量和计算机中的变量之区别:数学上变量就只有值的概念,而计算机中则还有地址的概念。在计算机中同样是用变量名访问变量,在不同的场合中使用的是其不同的特性——左值和右值)
标识符:简单地说,标识符就是一个名字。
C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。(非法字符举例:M.D.John,$123,1AB)
C是大小写敏感的语言,其中大写字母和小写字母被认为是不同的字符。一般变量名用小写字母,而字符常量名用大写字母。
ANSI中没有规定标识符的长度(包含字符的个数),但各个C编译系统都有自己的规定。当程序中的标识符超过规定限制,则超过的部分将被截去,却不产生编译或连接错误,于