-
在C语言中,符号中间的空白(包括空格符,制表符和换行符)将被忽略。
-
贪心法:C语言中,每一个符号应该包含尽可能多的字符。
-
如果一个整形常量的第一个字符为0,那么该常量将被视为八进制数。
-
用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器所采用的字符集中的序列值;而用双引号引起的字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号中的字符以及一个额外的二进制为0的字符'\0'初始化。
-
!=的优先级比&高,加法运算符优先级比移位运算符高。
-
优先级表:
-
优先级助记:
-
优先级最高的并不是真正意义上的运算符,包括数组下标,函数调用操作符,结构成员选择操作符。他们都是自左至右结合。
-
单目运算符的优先级仅次于前者,在所有真正意义上的运算符中,他们的优先级最高。类型转换也是单目运算符。他们自右至左结合。接下来是双目运算符,其中,算术运算符优先级最高,移位运算符次之,关系运算符再次之,接着是逻辑运算符,赋值运算符,最后是条件运算符。
-
我们需要记住的最重要两点是:
-
任何一个逻辑运算符的优先级低于任何一个关系运算符。
-
移位运算符优先级比算术运算符低,但比关系运算符高。
-
-
-
任何两个逻辑运算符都具有不同的优先级,所有按位运算符优先级要比顺序运算符高,每个“与”运算符要比相应的“或”高,二按位异或介于按位与和按位或之间。
-
注意不要在if或while语句后面写一个分号,如果要写,请用大括号括起来。实际上,这也是我们提倡的一种编程风格。
-
C语言要求,在函数调用时即使函数不带参数,也应包括参数列表。因此,如果f是一个函数,f()时一个函数调用语句,而f是一个什么也不做的语句,更精确的说,它计算函数f的地址,却并不调用该函数。
-
悬挂else问题的解决方法:else总是与同一括号内最近的未匹配的if结合。
《C陷阱与缺陷》读书笔记
最新推荐文章于 2024-07-19 14:27:26 发布