《C Primer Plus》读书笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《C Primer Plus》读书笔记相关的知识,希望对你有一定的参考价值。

  “温故而知新可以为师也”

  最近又在翻读《C Primer Plus》,虽然以前也看一遍,但基本上是囫囵吞枣,简单的东西以为很简单,没有进行深入的思考,复杂的东西更是被直接的略过。现在又翻起这书,一方面多看了一些C代码,多了一些自己的理解在里面,另一方面知道如何去分层次的阅读,补充自己以前漏掉的知识点。虽然可能以后也没有太多编写代码的工作,但是想要更多地去了解计算机,更多的了解一下偏低级语言的东西,好好学习C语言是很有必要的。尽管C有些缺陷,但是它仍是一款非常优秀的编程语言。

  下面就是我在这次阅读中,随手记录的一些笔记,希望以后自己看见这些笔记的时候,不再是空洞的文字,而是C的细节知识。

笔记正文:

第三章 C和数据
float 类型至少能表示6位有效数字,取值范围至少为10^-37 到 10^37,系统用32位存储一个浮点数。
double 类型至少能表示10位有效数字,一般地double使用64位而不是32位长度。
关于float类型在内存中的二进制存储方式
[1位符号位][8位指数位][23位尾数位] --这里尾数是指一个浮点数被转成科学计数法后除了整数1和小数点后的部分,而整数1是被默认隐藏的。
float的计算方式
符号 有效数字 * 2^指数,由于8位可表示的范围是 -128 ~ 127,所以这个指数方位在10进制中应该是在 10^-38到10^38之间。
printf 何时刷新输出缓冲区

第五章 运算、表达式和语句
表达式 由运算符和操作数组合构成的,每个表达式都有一个值。
语句 一个语句是一条完整的计算机指令,在C中,语句用结束处的一个分号标识。声明语句、赋值语句、函数语句、结构化语句、空语句、复合语句。
副作用 是对数据对象或文件的修改。
顺序点 一个顺序点是程序执行中的一点:在该点处,所有的副作用都在进入下一步之前被计算。在C中,语句里的分号标识了一个顺序点,一些运算符也有顺序点。任何一个完整的表达式的结束也是一个顺序点。
完整表达式 一个完整的表达式是这样一个表达式 ——它不是一个更大表达式的子表达式。
sizeof运算符 返回操作数所占的空间,操作数可以是类型说明符或具体的变量,sizeof("22222")这样也是可以的
指派运算符 准确的类型转换 int val = (int)3.1415
自增运算符、自减运算符 优先级仅低于括号

第六章 C控制语句:循环
for语句
for(initialize;test;update)
statement
initialize 表达式只在循环语句执行前执行一次。然后对test表达式求值,如果该表达式为真,循环就被执行一次,然后计算update表达式,接着再次检查test表达式。
逗号运算符
首先,它保证被它被它分开的表达式按从左到右的次序进行计算,换句话说,逗号是个顺序点,逗号左边产生的所有副作用都在程序运行到逗号右边前生效。
其次,整个逗号表达式的值时右边成员的值。price = 249,500;(合法的语句,price = 249,而整个表达式的值是500)
逗号也被用作分割符
printf("%d %d",m,m)逗号都是分隔符,而不是逗号运算符
do...while语句
do
statement
while(expression);

第七章 C控制语句:分支和跳转
continue 语句导致循环体的剩余部分被跳过。
对于while和do while循环,continue语句之后发生的动作是求循环体判断表达式的值。
对于for循环,下一个动作是先求更新表达式的值,然后再求循环判断表达式的值。
*/

以上是关于《C Primer Plus》读书笔记的主要内容,如果未能解决你的问题,请参考以下文章

C primer plus 读书笔记第十二章

C Primer Plus (第6版) 读书笔记_Chapter 1

C++ Primer Plus读书笔记

读书笔记C Primer Plus ch.15位运算 示例程序15.1 整数转换成二进制字符串

读书笔记C Primer Plus ch.15位运算 示例程序15.3 定义并使用字段

C++Primer第5版读书笔记(第9章)