《C程序设计语言》第2版
第1章 导言
1.1 入门
1.2 变量与算术表达式
基本数据类型
- short 短整型
- int 整型
- long 长整型
- char 字符型
- float 浮点型
- double 双精度浮点型
类型限定符unsiged
C语言本身并没有定义输入/输出功能。
printf()函数是标准库函数。
整除
5/9 整除,结果是0
5/9.0 结果是浮点数
如果某个算术运算符的所有操作数均为整型,则执行整型运算;
如果某个算术运算符有一个浮点型操作数和一个整型操作数,则在开始运算之前整型操作数将会被转换为浮点型。
即使浮点常量取的是整型值,在书写时最好还是为它加上一个显示的小数点,这样可以强调其浮点性质。
1.3 for语句
1.4 符号常量
#define 名字 替换文本
1.5 字符输入/输出
标准库提供的输入/输出模型非常简单。无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理。
文本流是由多行字符构成的字符序列,而每行字符则由0个或多个字符组成,行末一个换行符。
标准库负责使每个输入/输出流都能够遵守这一模型。使用标准库的C语言程序员不必关心在程序之外这些行是如何表示的。
1.5.1 文件复制
- getchar()
- putchar()
1.5.2 字符统计
1.5.3 行计数
标准库保证输入文本流以行序列的形式出现,每一行均以换行符结束。
统计行数等价于统计换行符的个数。
1.5.4 单词计数
1.6 数组
多路判定
if(条件1)
语句1
else(条件2)
语句2
…
…
else
语句n在这种方式中,各条件从前往后依次求值,直到满足某个条件,然后执行对应的语句部分。
这中方式执行完成后,整个语句执行结束(其中任何语句都可以是括在花括号中的若干条语句)。
如果所有条件都不满足,则执行位于最后一个else之后的语句。
1.7 函数
函数定义的一般形式:
返回值类型 函数名(0个或多个参数声明)
{
声明部分
语句序列
}
函数定义中圆括号内列表中出现的变量称为形式参数,
函数调用中形式参数对应的值称为实际参数。
函数原型
函数声明
函数定义
1.8 参数–传值调用
在C语言中所有的参数都是通过值传递的。
传递给被调用函数的参数值存放在临时变量中,而不是存放在原来的变量中。
当把数组名作为参数时,传递给函数的值是数组起始元素的位置或地址,
1.8 字符数组
第2章 类型运算符与表达式
2.1 变量名
2.2 数据类型长度
C语言提供了下列几种基本数据类型。
char 字符型,占据一个字节,可以存放本地字符集的一个字符
int 整型,通常反映了所有机器中整数的最自然长度
float 单精度浮点数
double 双精度浮点数
在可以在这些基本数据类型前面加上一些限定符。
short和long两个限定符用于限定整型:
short int sh;
long int counter;
关键字int可省略。
int通常代表特定机器中整数的自然长度。
short类型通常为16位。
long类型至少为32位。
short类型不得长于int类型,而int类型不得长long类型:
short <= int <= long
long double表示高精度浮点数。同整型一样浮点型长度也取决于具体实现的。
float、double与long double类型可以表示相同的长度,也可以表示两种或三种不同长度
signed和unsigned用于限定char类型或任何整型。
2.3 常量
枚举常量是另外一种类型的常量。枚举是一个常量整型值的列表。
enum boolean { NO, YES};
2.4 声明
所有变量都必须现声明后使用。
一个声明指定一种变量类型,后面所带的变量表可以包含一个或多个该类型变量。
默认情况下,默认变量和静态变量将被初始化为0。
未经显式初始化的的自动变量的值是未定义值(即无效值)。
任何变量的声明都可以使用const限定符限定。
该限定符指定的变量的值不能被修改。
2.5 算术运算符
二元算术运算符:具有两个操作数的运算符。
二元算术运算符包括:+、-、*、/、%(取模运算符)
整数除法(被除数和除数都是整数)会截断结果中的小数部分。
取模运算符%不能用于float或double类型。
有符操作数的情况下,整数除法截取的方向以及,取模运算结果的符号取决于具体机器的实现,
这个处理上溢和下溢的情况是一样的。
二元运算符+和-具有相同的优先级,它们的优先级比运算符*、/和%的优先级低。
运算符*、/和%的优先级比一元运算符+和-的优先级低。
算术运算符采用从左到右的结合规则。
2.6 关系运算符和逻辑运算符
关系运算符: > >= < <=
它们