《C程序设计语言(第2版·新版)》第0章 引言
从这篇开始,按照我的理解,整理Kernigham和Ritchie的《C程序设计语言(第2版·新版)》。
0.1 C
C很适合用来编写编译器和操作系统,被称作“系统编程语言”;BCPL语言-->B语言-->C语言;
数据类型:基本(字符,多种长度整型和浮点型);派生(指针,数组,结构,联合);表达式:运算符+操作数,总可以作为语句;指针:提供与具体机器无关的地址算术运算;
控制流结构:语句组,条件判断(if-else),多路选择(switch),终止测试在顶部的循环(while, for),终止测试在底部的循环(do),提前跳出循环(break);
函数:可返回基本、结构、联合、指针类型;总可递归调用;局部变量;函数、变量作用范围可改变;
预处理:对程序文本进行宏替换、包含其他源文件、条件编译;
C语言未提供直接处理复合对象(字符串,集合,列表、数组)的操作;除局部变量提供的静态定义和堆栈外未定义任何存储分配工具;未提供输入输出功能。所有这些高层机制必须由显式调用函数来提供。
不完美之处:某些运算符优先级不正确;某些语法还可优化
0.2 ANSI C的变化
语法变化:函数声明和定义(修改);结构赋值和枚举定义等(新增);禁止指针和整型交换值,要求变量正确声明和显式强制类型转换
定义标准库:访问OS;格式化I/O;内存分配;字符串操作;标准头文件(访问函数声明或数据类型声明);
提出可移植性,预设一个常量集合来描述机器特性;
0.3 本书结构
第1章:C语言核心部分;
2-6章:语言特性
基本数据类型、运算符、表达式;
控制流;
函数和程序结构(包括外部变量、作用域规则和多源文件),以及预处理器;
指针和地址运算;
结构和联合;
7:标准库,所有支持C的机器都支持它
8:C与UNIX接口:I/O;文件系统;存储分配
附录A:语言参考手册简洁版:给程序员看的,ANSI C是写编译器要看的
附录B:标准库简洁版
附录C:ANSI C与原始C的变更小结。标准和各个特定编译器是解释语言的最终权威。