header image
 

《C陷阱与缺陷》读书笔记(第一章)

从同学那里借到了这本书,以前在电子书上看了一些,现在想系统地看看。顺便也在这刚开的博客里做一下笔记吧。:)

1.1 =不同于==

有时候可能需要在判断语句中进行赋值,再判断结果是否为零。如果确实想这么写:if(x = y),也应该显式地比较,以免引起误解:if((x = y) != 0)。

1.3 词法分析中得“贪心法”

这一节作者提到了一个例子。y = x/*p,代码本意是用 x 去除 p 所指向的数,但可能会被编译器理解为一段注释的开始。所以在双目运算符左右尽量加空格还是比较明智得选择。

1.4 整形常量

如果在八进制的数值表示中出现8,9,gcc 会直接报错。

1.5 字符与字符串

gcc 中也支持多字节字符常量,比如 int i = ‘abcd’ 后,i 的值为:0×61626364。但在编译时会出现警告。另外,如果变量无法完整地装入多字节字符常量时,比如 char c = ‘abcd’,此时 c 的值为多字节字符的最后一个字符的值,即 ‘d’,编译器对此会外加一个溢出警告。

~ by danran on October 30, 2007.

One Response to “《C陷阱与缺陷》读书笔记(第一章)”

  1. Test.

Leave a Reply