-
第1章 导言
-
区别两个术语(p25上)
这一句就已经远远把《C Primer Plus》比下去了
- 定义:表示创建变量或分配存储单元
- 声明:说明变量的性质,但不分配存储单元
-
-
第2章 类型、运算符与表达式
- 转义字符还可以用八进制或十六进制数字表示(p29中)
- “字符串常量的连接为将较长的字符串分散在若干个源文件行中提供了支持”(p30中,边打字边懂了,是“若干源文件行”而不是“若干源文件”)
- 字符总是正的,但存储在字符变量中的位模式在某些机器中可能是负的(p34下)
-
第3章 控制流
-
练习3-1有点意思(p47下)
-
不是逗号运算符的逗号
这些逗号并不保证各表达式按从左至右的顺序求值
- \1. 分隔函数参数的逗号
- \2. 分隔声明中变量的逗号
-
空白字符只有:空格、制表符、换行符,这三种吗???(p53下)
-
“把测试颠倒过来”?什么意思?(p54中)
-
“标号的作用域是整个函数”(p54下)
-
-
第4章 函数与程序结构
- 变量和函数可以一起声明(p61中)
- 寄存器变量(由register声明)表示“改变量在程序中使用频率较高”。这类变量将放在机器的寄存器中,可以使程序更小,执行速度更快。但只适用于自动变量和函数的形参。(p71中)
- “无论寄存器变量实际上是不是存放在寄存器中,它的地址都是不能访问的”(p71下)
- 下面两句啥意思?(p77下)
-
第5章 指针与数组
- “C语言保证:0永远不是有效的数据地址”(p87下)
- ANSI C要求argv[argc](即最后一个命令行参数之后的指针指向的字符串)必须为一空指针(p99中)
-
第6章 结构
- 结构类型也是值传递的(p114上)
- 位字段(p130-p131)!!!
-
第7章 输入与输出
- 空白符包括:空格符,横向制表符,换行符,回车符,纵向制表符,换页符。共计6个。(p138下)
- stderr不会受stdout重定向的影响(p143中)
-
第8章 UNIX系统接口
- “通过一个单一的接口就可以处理外围设备和程序之间的所有通信”(p149中)
-
附录A
- (a/b)*b+a%b=a,恒成立(p181上)
- 后缀++的运算顺序呢?(p184中)
#include <stdio.h>int main(void){ int a = 0;// a++==0 ? printf("%d\n", a) : printf("%d\n", a);// a++, printf("%d\n", a); printf("%d\n", sizeof(long double)); return 0;} - A.8 声明(p185下)
- 预处理过程
- 1.三字符序列替换
- 2.行连接
- 3.将程序分成用空白符分隔的记号。替换注释为空白符。执行预处理指令,并进行宏扩展
- 4.将字符常量和字符串字面值中国的转义字符序列替换为等价字符,把相邻字符串字面值连接起来
- 5.收集必要的程序和数据,并将外部函数和对象的引用与其定义相连接,翻译经过以上处理得到的结果,然后与其他程序和库连接起来
-
疑问
- 看练习1-20的要求,怎么确定制表符和空格的对应呢?制表符的长度好像是不一定的啊?(p25)
- 为啥要用枚举类型呢?(p155下)
- 映射函数?(p174下)
是指“把指针映射为整数的函数”? - 有点乱,没看懂(p176中)
- 表述没看懂(p177中)
- 怎么用这个东西来循环访问数组元素?(p181中)
- 什么是“不完整类型”(p184下)
- 有一段混乱没看懂(p185中)
- 没看懂(p192中)
- 宏扩展的#和##运算符,跟引用和连接有什么关系?(p207下)
- 看不懂了(p211中)
-
勘误
- 练习1-23,缺少“的程序”两个字(p25)
- signed和unsigned的中英文对应反了(p34下)
- 写错了?(p42上)
- “正”应改为“非负”(p54上)
- 少个句号(p69下)
- 缩进有问题(p96上)
- “分析一个直接声”缺字,应改为“分析一个直接声明语素”(P107中,?)
- 翻译有误。并且还应加个括号(p121下)
- 翻译错误(p124上)
- 好像有错,对照一下英文版(p157中)
- “可以不”还是“不可以”?(p185中)
- “tyedef”应改为“typedef”(p212上)
- errpo应改为errno吧?(p228下)
《C程序设计语言》读书笔记
最新推荐文章于 2021-10-04 10:51:34 发布