《写给大家看的c语言书》重点记录

       这是老外写的一本书,“写给大家看的”书,当然就非常好理解了,译文依然是以很轻松的格调来讲述传说中的c语言,书中比较好的一个栏目就是“陷阱”,这么蛋疼的名字不知道是作者的问题还是译者的问题,这个栏目讲的不能算是陷阱,应该说是c语言中需要注意的问题吧。下面摘录了全书中的“陷阱”,有些地方表述不清楚,我就做了一些补充,也删掉了一些极其没用的“陷阱”。


●  输入代码的时候一定不要马虎,当c语言需要某个特定的字符比如单括号时,就一定不能错写为方括号。

●  不要让整数以0开头,除非整数是0本身。

●  不要使用冗余的注释。没有价值的注释只会浪费你宝贵的编程的时间。

●  不要嵌套注释。如果你要注释掉一段程序,必须确保这段代码不含注释。

●  不要写几乎没有空白的程序。需要时尽可能多的在程序中使用缩进和空行,对代码行进行分组。当你学习了更多c语言之后,你将学会在哪里加空白能提高程序的可读性。

●  不要指望c语言知道如何自动格式化数据。你必须自己使用转化字符。

●  不要忘记用%f的小数控制,除非你想让程序把所有的浮点数都打印出个小数位。

●  不要混淆数据类型和变量类型。避免把一种数据类型的值存储到另一种数据类型的变量中。

●  最好不要在主函数的前面定义变量(这样的变量称为全局变量,如果不小心使用,容易导致错误),而应该在主函数的左大括号之后定义变量。

●  不要在数字中使用逗号。输入值3万应该是30000,而不是30,000。

●  只有当字符数组包含足够多的元素用来存放字符串时,才能把字符串放到字符数组中。

●  不要忘了数组的下标从0开始,而不是1(有些编程语言是从1开始)。

●  不要计算错了!如果你没有为结尾的NULL零预留足够的元素,c语言将不能正确处理字符。

●  不要忘记在第一个控制字符串字符前面加上空格(例如,“%d”在%号前面有一个空格)以确保正确的输入。 (此处实在不知道啥意思,哪位知道还请告知,多谢!)

●  不要在scanf()数组名前面加上&。

●  如果你想减去一个负数,不要把两个减号连在一起,在他们之间留个空格。

●  不要用%计算非整型数据除法的余数。如果除以非整数,得到的结果是精确的浮点数。

●  不要写不加括号的长表达式。括号有助于让表达式更清晰、准确,避免由于遵循运算符优先级表而出错。

●  不要混用不通的数据类型。要对数据类型进行强制转换,使得在求值之前所有数据类型的一致。

●  不要忽视运算符的优先级。在表中,复合运算符的优先级较低,而且在几乎其他所有运算符计算结束后才开始操作。

●  不要在关系运算符两边用不通数据类型的值。

●  不要在if或else语句后面加上分号。分号只能出现在if或else语句的主体中每条语句的句末。

●  不要过多使用!(“非”运算符)。大多数否定的逻辑可以取反(<变成>=)以避免使用非运算符。

●  不要把太多的关系运算符组合在一个表达式中。

●  不要在条件运算符?:的每一边都重复赋值语句。把变量和赋值运算符放到条件运算符左边以提高效率。

●  不要认为前缀和后缀总是产生相同的值。只有当应用于一个变量时,前缀和后缀才是相同的。如果把++和- -与其他变量和表达式组合起来,前缀和后缀的位置对于想要得到的结果来说至关重要。

●  不要在while的condition外的括号后面加上分号。如果加了分号,将会导致无限循环。

●  不要忘记for循环中的分号。

●  不要在某种没用某种关系测试(如if或循环中)的情况下使用break或continue。

●  可以使用switch语句时,不要使用嵌套的if语句。Switch语句是更清晰的语句。

●  如果你不能肯定第1个字符数组可以存放合并后的字符串,就不要用strcat()来连接两个字符串。

●  不要在puts()的字符串中加换行符,除非你想打印出一个空行。Puts()会自动在字符串末尾加上换行符。

●  在数组中,不要使用比所定义的更多的元素。

●  在初始化数组之前,不要使用它。

●  不要尝试把一种数据类型的指针指向另一种数据类型的变量。

●  无需知道c语言为变量分配的准确地址。你只需使用&,c语言会帮你处理其余的事。

●  不要忘记在对指针取值时使用*,否则你将得到错误的值。

●  不要想一下子就掌握指针的精髓。只有再用c编程一段时间之后,你才会完全的欣赏指针。此时,指针看起来没有任何帮助,      你可能觉得唯一的好处就是知道了scanf()中&的真正意思。

●  不要用内置函数来填充字符型指针的位置,除非字符型指针初始设置为指向一个很长的字符串。

●  不要总是依赖普通数组来存放数据。有时候,程序只是在短时间才需要的数据,这种情况下使用堆能更好的利用内存资源。

●  不要忘记在所有结构体定义的末尾加上分号。

●  不要在程序的中间定义全局变量。如果这样做,会很难找到它们。

●  不要一开始就是用全局变量。


此文纯手打,转载请注明出处,谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值