前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《The C Puzzle Book》读书笔记

《The C Puzzle Book》读书笔记

原创
作者头像
雷大亨
修改2018-01-01 18:53:29
7090
修改2018-01-01 18:53:29
举报
文章被收录于专栏:遊俠扎彪遊俠扎彪

2008-10-10

  1. 赋值表达式的值是=右边的计算结果。如(x=3*2)=6.
  2. 实际编程中不要随便玩puzzle。
  3. 赋值操作符的优先级低于算术运算。如x=3+2和x=(3+2)等价。
  4. &&优于||.
  5. 宏定义是替换型的。
  6. z=x/++x是容易产生副作用的代码,由编译器决定被除数值的情况。C程序的副作用几乎都与变量的值无法预料有关。
  7. 如果一个字符串能解释成多个操作符,编译器将按照“构成操作符的字符个数越多越好”的原则来作出选择。
  8. 形参前面加上一个#字符做前缀,使得实参被括在一对引号里。C预处理器将会自动将相邻的字符串合并。如,printf(#int"=%d",int),可为printf("int""=%d",3),可为printf("int=%d",3)。
  9. 复杂的puzzle可先进行优先级的绑定,加上括号,由里至外进行计算。
  10. 数值处理非C之强项,因其无法捕获算术也算错误。C中,数值数据类型的取值范围是有编译器决定的,程序员无法在C程序中对此作出调整。
  11. 进行算术运算的时候,最好避免使用不同类型的操作数,如必用,小心为妙。
  12. 头文件使用时,预处理器会把头文件的声明替换为头文件的内容,从而生效。
  13. else会被归入最接近它的if语句,如,if(y<0) if(y>0) x=3;else x=5;等价于if(y<0){ if(y>0) x=3;else x=5;}.应当先将不熟悉的模式转化成熟悉的模式,再行处理。
  14. sum+=y在循环中,只是求解y各变值的和,变体可为x+=++y.
  15. 注意循环体中执行的结果,如while(y<10){x=y++;z=++y},y值并不是“连续”被while条件判断的,因里面有两个++.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档