2017年C语言学习——C Primer Plus(第五版)中文版笔记
第一章
编程的7个步骤:
1. 定义程序目标
2. 设计程序
3. 编译
4. 运行程序
5. 测试和调试程序
6. 维护和修改程序
———————————————————————————————————————
第二章
①变量第一个字符必须是字母或者下划线。
②关键字(表2.2):
1. auto
2. enum
3. restrict
4. unsigned
5. break
6. extern
7. return
8. void
9. case
10. float
11. short
12. volatile
13. char
14. for
15. signed
16. while
17. const
18. goto
19. sizeof
20. _bool
21. Continue
22. If
23. Static
24. _Complex
25. Default
26. Inline
27. Struct
28. _Imaginary
29. Do
30. Int
31. Switch
32. Double
33. Long
34. Typedef
35. Else
36. Register
37. union
———————————————————————————————————————第三章
① 8位-----à1字节
每一位是0或者1
所以8位里面有256(2的八次方)种0,1组合
② E为XX的XX次方
例:3.16E7 = 3.16 乘以10的7次方
③ 浮点数的储存方式为 符号位+小数部分+指数部分
④ 使用浮点数还丢精度
⑤ Printf函数的输出控制符多余参数的时候多次的控制符输出的是内存中的任意数值 例子:printf(”%d %d”,ten);第二个%d输出的是任意值
⑥ 进制前缀
八进制:%#0(这个是数字0)[06547]
十六进制:
%#x或者%#X(0x6547,0X6547)
%0(显示十六进制整数---6547
⑦ 后缀
Long long类型【可用ll或者LL】:3LL
Unsigned long long类型【u或者U】:5ull,10Ull
⑧ 打印unsigned int用%u
⑨ 打印long用%ld
⑩ 打印int用%d
⑪ 打印十六进制long用%lx
⑫ 打印八进制long用lo(着是字母o)
⑬ %hd short int
⑭ %ho short 整形的八进制
⑮ 可用结合u表示无符号整形
⑯ 非打印字符:见表3.2
⑰ 通过加后缀f或者F吧浮点数已float存储
⑱ 加L的浮点数已long double存储
⑲ Sizeof()
1. 用于计算字节
2. 要获取某类型大小需要加()
3. 获取具体量大小可用不加也可用加。
第四章
①字符串
1. 要用“”括起来
2. \0表示字符串的结束标记,属于空字符,为非打印字符,ASCII为0
Scnaf在读取的时候自动加入\0。
3. 定义方式:char ch [5]
4. %s输出字符串
5. Scanf()在遇到空白字符(空格,制表符,换回符)停止读取,%s用来读取一个单词
②strlen()函数
1. 使用之前加头文件#include<string.h>,
2. Sizeof比strlen大一是因为把\0计算进去了
③预处理器和常量
1. 格式:#define name value(注意这个结构没有=符号)
2. Name部分用大写表示常量。
3. Name部分加上c_或者k_前缀
4. 命名规则和变量一样
5. Const表示常量:const int Name = 12;
6. 系统定义的常量 加头文件limits.h。见表4.1,4.2
④printf()
1.格式字符串:%[标志]【输出最小宽度】【精度】【长度】类型
2.具体表格看4.3
3.最小宽度:%4d如果容纳不下就系统自动增加宽度
4.精度:%5.2f中的5为宽度.2为精度表示在输出小数点后2位
可用使用.表示后面跟着0(%.f和%.0f一样)
5.其他修饰符看表4.4
6.打印较长字符的方法:
(1)用\n
(2)用两个“”来写
7.如果一个语句中要嵌套一个一个数字可以用%.2f的格式来自动控制宽 度。
③scanf()
1.在变量里面要用&,在数组不要加&
2.用空格来(换行,tab和空格)来分段,%c除外
3.使用了字段宽度scnaf()会在子段结尾或者第一个空白符处终止
4.要是第一个非空白符不是数字会把读到的东西放回去,程序下一次
会继续从那里开始读取永远不会超越终止的地方。
5.%x可以识别十六进制的a-f
6.%s除了空白字符外的所有字符都接受
7.%c接受全部字符(包括空白字符)
8.输入内容要和说明符的格式一致
a) 例如:scanf(“%d.%d”&a,&b) 在程序中药输入(数字).(数字)
9.scanf(“%c”,&a):读取第一个字符;scanf(“ %c”,&a):读取第一个非空字符
10.scanf(“%*d %*d %d”,&n):表示跳过前面两个数字的输入到的第三个。