首页 > 代码库 > 计算机经典书籍系列1-C陷阱与缺陷1

计算机经典书籍系列1-C陷阱与缺陷1

人民邮电出版社,Andrew Koenig 著,高巍译,王昕审校

C Traps and pitfalls

Andrew Koenig还有C++沉思录大作

绝对的经典

1. 词法分析中的贪心法:每一个符号应该包含尽可能多的字符

2. 如果一个整形常量的第一个字符是0,将被视为8进制。0100 = 64, 而不是二进制

3. printf("hello\n");与char hello[]={‘h‘,‘e‘,‘l‘,‘l‘,‘o‘,‘\n‘,0}; printf(hello);等价

4. 函数指针 int (*fp)();可以简写为 int fp()

5.简单的优先级:算>关系>移位>逻辑

6. struct A{..}后面最好写上分号,有些编译器不会报错

7.else始终与同一括号内最近的if匹配

8.C语言只有一维数组,而且在编译的时候就要把数组的大小确定下来

9.多维数组是一维数组模拟出来的

10.int a[32][11];意思是a是一个拥有32个元素的数组,每个元素拥有11个整形变量

11. 对于int a[32][11]; 如果 int i = a[4][5]; 可以写成 i = *(*(a+4)+5);或者i=*(a[4]+5);

12. int a[32][11]; int (*ap)[11]; ap = a;这样才不会错

13.数组名作为函数参数,数组名就会被转化为指向该数组第一个元素的指针

14.extern char *p;与extern char p[];是不一样的


计算机经典书籍系列1-C陷阱与缺陷1