码迷,mamicode.com
首页 > 其他好文 > 详细

重拾C之语句,操作符和表达式

时间:2015-03-15 23:29:47      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

1.C中的if语句和其他语言的If语句中,只存在一个差别,c并不具备布尔类型,而是用整型来代替,这样,括号中的式子可以是任何可以产生整型结果的表达式,c中的关系操作符的结果是整型0或1

2.break和continue语句的任何一条如果出现在嵌套的循环内部,它只是对最内层的循环起作用,你无法使用break或continue语句影响外层循环的执行

3.空语句 while((ch = getchar())!=EOF && ch != ‘\n‘)

              ;

这种形式清楚地显示了循环体是空的,而不至于使人误以为程序接下来的一条语句才是循环体

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.左值必须是一个很确定的存储地址值 ,表达式中尽量不要混用布尔值和整型值

 

重拾C之语句,操作符和表达式

标签:

原文地址:http://www.cnblogs.com/lingxianxia/p/4340685.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!