1.C中的if语句和其他语言的If语句中,只存在一个差别,c并不具备布尔类型,而是用整型来代替,这样,括号中的式子可以是任何可以产生整型结果的表达式,c中的关系操作符的结果是整型0或1
2.break和continue语句的任何一条如果出现在嵌套的循环内部,它只是对最内层的循环起作用,你无法使用break或continue语句影响外层循环的执行
3.空语句 while((ch = getchar())!=EOF && ch != ' ')
;
这种形式清楚地显示了循环体是空的,而不至于使人误以为程序接下来的一条语句才是循环体
4.for语句和while语句执行过程的区别在于出现continue语句时,在for语句中,continue语句跳过 了循环体的剩余部分,直接回到调整部分,在while语句中,调整部分是循环体的一部分,所以,continue将会把他也跳过
5.switch语句中的括号里面的值必须是整型,每一个switch语句只能有一个default子句,但是,它可以出现在语句列表的任何位置
6.goto语句可以出现在同一个函数中的任何位置,要想立即从深层嵌套的循环中退出只能有一个方法,就是使用goto语句,还可以使用一种好的方案来避免使用goto语句,把所有的循环都放到一个单独的函数里,当到达最内层的循环时,可以使用return语句离开这个函数
7.for循环的可读性比while循环强,因为它把用于控制循环的表达式收集起来放在一个地方
8.逻辑移位和算术移位:尤其是右移,逻辑移位,用零补位,算术移位,则是用符号位决定补位,而且,由于不同的编译器对于右移操作采用的移位方式不一定一致,所以,一个程序如果使用了有符号数的右移位操作,它就是不可移植的
9.用int ch =getchar() ,而不是用char ch=getchar()的原因是eof需要的位数比字符型值所提供的位数要多,会被截短,而易产生错误
10.尽量使用复合赋值符,sizeof操作符判断它的操作数的类型长度,以字节为单位表示,操作数可以是个表达式,也可以是两边加上括号的类型名
11.&&操作符会出现短路求值,三操作符的作用有的时候可以减少书写,逗号操作符的使用
a = get_value();
count_value(a);
while(a > 0 ){
a = get_value();
count_value(a);
}
可以简化成while(a=getvalue(),count_value(a),a>0){......}
12.左值必须是一个很确定的存储地址值 ,表达式中尽量不要混用布尔值和整型值