书名 《C Primer Plus, 5th Edition》
本书样例: http://www.samspublishing.com
第一章:
1、面向对象编程是一种哲学思想,它试图让语言适应问题,而不是让问题来适应语言。
2、定义程序目标->设计程序->编写代码->编译->运行程序->测试和调试程序->维护和修改程序。
3、应该养成在编写代码前先进行规划的习惯。使用古老而可敬的笔记技术略记下程序的目标,养成勾勒出设计概貌。
4、学习顺序:
5、许多IT类的书籍序言或第一章概述会含有下载本书例子源码的网址哦!
第二章:C语言概述
1、C语言的一个基本设计原则是避免不必要的成分。
第三章:数据和C
1、前缀OX或者ox表示十六进制值,前缀O(零)表示使用八进制。
2、显示整数——%O、%d、%x分别表示八、十、十六进制
3、使用%#o、%#x和%#X分别生成o、ox、OX前缀
4、C把一个字节(byte)定义为char类型使用的位(bit)数,所以这样的系统上,C文档中提到的一个字节是16位或32位,非8位。
5、C还有另外一个特殊的浮点值,NaN(Not a Number),如果asin()的输入参数大于1,则返回NaN
6、一些不会报告错误的错误
7、有些实现支持复数和虚数类型
第四章 字符串和格式化输入/输出
1、一般情况下,使用%s的scanf()只会把一个单词而不是整个语句作为字符串读入。
2、定义常量的三种方法:#define、const、 enum
3、limit.h中的一些符号常量 p66
4、转换说明符及作为结果的打印输出 p68
5、打印‘%’,可使用两个‘%’
6、printf()函数返回所打印的字符的个数,如果输出错误,则返回一个负数。
7、打印较长的字符串:1)分句(分多个printf) 2)\
8、scanf()和printf()的‘*’修饰符
9、sizeof(str)——str的字符数+1
10、scanf("%s",str);
第五章:运算符\表达式和语句
1、7./4.=1.75
2、优先级
3、在包含两种数据类型的任何运算里,两个值都被转换成两种类型里较高的级别。
4、在混合类型的算术运算的情况下,较小的类型被转换成较大的类型。提升是一个平滑的无损害的过程,单数降级可能导致真正的问题。
5、不依赖于自动转换是一个很好的编程习惯。
第六章:C控制语句:循环
1、使用math.h头文件中声明的fabs()函数可以方便地进行浮点数的判等。
2、if(5 == count) 代替 if(count==5) 比较好
3、逗号表达式
4、标准C的风格是:前向声明+main()+函数定义(一般放在单独文件中,所以前向声明必不可少)
第七章:C控制语句:分支和跳转
1、if(x>0)
2、while((ch=getchar()) != '\n') 典型C编程合并两句风格
3、putchar()、getchar()只处理字符
4、<ctype.h>——>字符处理 P158
5、1)检测空白字符
6、break语句用于循环和switch中,而continue仅用于循环
第八章:字符输入/输出和输入确认
1、键入EOF字符的方式:必须知道您的系统的要求
2、混合输入数字和字符时混合使用getchar()和scanf()
3、输入综合好实例 P207
第九章: 函数
1、ptr = &bah; //ptr指向bah
2、指针是一种新的数据类型,而不是一种整数类型(两整数可相乘可指针不能)
3、交换两数的值
第十章 数组和指针
1、数组初始化,当数值数少于数组元素数目,其余置0
2、指定初始化
3、数组不支持整体赋值
4、使用超出数组边界的索引会改变其他变量的数组
5、声明数组时,方括号内必须用整数常量表达式
6、多维数组初始化时可以省略内部的花括号,保留最外层并个数正确ok
7、在C中,对一个指针加1的结果是对该指针增加一个存储单元(它指向的对象的字节大小)
8、不能对一个未初始化的指针取值 (int *pt; *pt=5; 错)
9、处理数组的函数只能传递指针是为了提高程序的效率。
10、有关const和指针
11、声明判断
12、声明N维数组的指针时,除最左边的方括号可留空外,其他都需填值
13、C99新特性