第二章 语法“陷阱”
●理解函数声明
任何C变量的声明都由两部分组成:类型以及一组类似表达式的声明符。声明符从表面上看与表达式有些类似,对他求值应该返回一个声明中给定类型的结果。
只需要把声明中的变量名和声明末尾的分号去掉,再将剩余的部分用一个括号整个“封装”起来,就得到该类型的类型转换符。
对一个常数进行类型转换,将其转型为某变量的类型,只需要在变量声明中将变量名去掉即可。
●运算符的优先级问题
优先级最高者其实并不是真正意义上的运算符。
单目运算符在所有真正意义上的运算符中优先级最高。
优先级比单目运算符要低的,接下来就是双目运算符。在双目运算符中,算术运算符的优先级最高,移位运算符再次之,接着是逻辑运算符,赋值运算符。
重要的两点是:
1、任何一个逻辑运算符的优先级低于任何一个关系运算符。
2、移位运算符的优先级比算术运算符要低,但是比关系运算符要高。
任何两个逻辑运算符都具有不同的优先级,所有的按位运算符优先级要比顺序运算符的优先级高。
在所有的运算符中,逗号运算符的优先级最低。
●注意作为语句结束标志的分号
在C程序中如果不小心多写一个或者少写一个分号可能造成不可预知的错误。
●switch语句
与众不同的是,C语言的switch语句的控制流程能够依次通过并执行各个case部分。程序员很容易会遗漏各个case部分的break语句,造成一些难以理解的程序行为。
●函数调用
C语言要求:在函数调用时即使函数不带参数,也应该包括参数列表。
●“悬挂”else引发的问题
C语言规定:else始终与同一对括号内最近的未配合的if结合。
文章评论(0条评论)
登录后参与讨论