《The C Puzzle Book》读书笔记

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条件判断的,因里面有两个++.

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java与Android技术栈

为了程序的健壮性,我们可以使用空对象模式

在写代码的时候我们经常会遇到空指针,为了避免空指针的发生需要做一些判断。如果是复杂对象的话,还需要一层层地去判断。这个时候我就无比怀念groovy、kotlin...

1022
来自专栏xingoo, 一个梦想做发明家的程序员

《JavaScript语言精粹》—— 读书总结

话说这本书还是同学的推荐才读的,之前感觉这本书太薄了,不值得看,没想到小身材有大智慧,书中的内容总结的还是很到位的!所以就把最后几章,精华的部分整理整理。 优...

2559
来自专栏Danny的专栏

C#——set和get

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1293
来自专栏PPV课数据科学社区

【学习】数据分析师的Python日记-第1天:谁来给我讲讲Python?

今天带来的是PYTHON,这是一篇非常有意思的文章。希望对大家有帮助。 ---- ---- 导语:或许是网上嘈嘈杂杂的关于大数据、互联网的新形势争论,或许是招聘...

2029
来自专栏Albert陈凯

2018-10-28 String.valueOf(null) 会报空指针异常

https://stackoverflow.com/questions/4042675/why-string-valueofnull-is-causing-nu...

681
来自专栏PHP在线

关于php运算符优先级的几道题

今天正好群里有人在问一道php运算符优先级的问题,正好以前也遇到过类似的问题,这里整理一下吧,方便大家理解 以防掉坑:) 先来道简单的: $a = 3; if ...

3406
来自专栏aCloudDeveloper

string 之 strchr函数 和 strstr函数(BF算法和KMP算法的应用)

Author: bakari  Date: 2012/8/9 继上篇。。。。。 下面是我写的代码与源码作的一些比较,均已严格测试通过,分别以“string 之”...

2389
来自专栏Java学习网

学习Java需吃透这些基本概念

学习好比盖房子,打地基好很重要,房了能盖多高关键看地基;学习同样道理,基础知识是以后学习一切技术的必要条件,我们在准备学习一门开发语言时,首先要学习它的基础,不...

24310
来自专栏小詹同学

Leetcode打卡 | No.017 电话号码的字母组合

欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!

1293
来自专栏开发 & 算法杂谈

LeetCode之Implement strStr()

Returns the index of the first occurrence of needle in haystack, or -1 if needl...

654

扫码关注云+社区