4、整数溢出
(1)无符号数(0、+),不可能发生溢出,当它超过范围时,从0开始重新计数
有符号数(-、0、+),可能发生溢出,并且“溢出”的结果不固定
(2)当一个无符号数和有符号数相加的时候,有符号数自动转化为无符号数
(3)判断溢出
方法一:强制转换成无符号数
if( (unsigned) a + (unsigned) b > INT_MAX )
fun();
方法二:利用(2)判断溢出
if( a > INT_MAX -b )
fun();
(5)常用误区
方法一:无符号数运算结果为无符号数,无符号数始终大于等于0
if( i - j >= 0)假设i和j都为无符号数,则可能引起错误,这个式子始终成立,因为无符号数始终大于等于0
方法二:strlen返回的是无符号数
if(strlen(b)-10>=0)这个式子始终成立(牛!!!!!),正确写法如下:if( strlen(a) >= 10 )
参考见http://blog.sina.com.cn/s/blog_62714d6a0100l0dc.html(C语言中的 整数溢出)
5、getchar异常情况
char c;
while((c = getchar()) != EOF)
putchar(c);
getchar函数在一般情况下返回的是标准输入文件中的下一个字符,当没有输入时返回EOF。
用char来存放getchar的返回值,则会发生截断,发生各种不可预知的结果。
分享到:
相关推荐
C陷阱与缺陷
《C陷阱与缺陷》是人民邮电出版社2008年出版的书籍,作者是(美)凯尼格。全书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章...
C语言缺陷和陷阱.pdf
C语言缺陷和陷阱[参照].pdf
C语言缺陷与陷阱(笔记).txt C语言缺陷与陷阱(笔记).txt
C语言陷阱和缺陷与读书笔记word档,对初学者是一本必不可少的好书~~
字符和字符串、防御性编程、嵌套注释、词法分析的“大嘴原则”等需要注意的缺陷与陷阱。
C语言缺陷与陷阱(笔记).docC语言缺陷与陷阱(笔记).docC语言缺陷与陷阱(笔记).docC语言缺陷与陷阱(笔记).docC语言缺陷与陷阱(笔记).doc
C陷阱与缺陷读书笔记的整理pdf,可打印
精心整理,C语言学习必修,WORD文档,经典,好不容易找到的,感谢作者!
C指针与陷阱 中文高清版
C语言缺陷与陷阱(笔记) 对正在学习C语言的同学,有点帮助
第三部分研究了由多个部分组成、分别编译并绑定到一起的C程序。第四部分处理了概念上的误解:当一个程序具体执行时会发生的事情。第五部分研究了我们的程序和它们所使用的常用库之间的关系。在第六部分中,我们注意...
[新人资料]C语言资料合集,里面包含了C教程 & 100例.chm,函数库.exe,c语言函数大全.chm,C语言陷阱和缺陷-扩充.pdf等等.可以说只要你把里面的资料看一遍,基本就把c语言的基础掌握了。
本科各学科笔记扫描版本
C缺陷与陷阱(笔记) C语言像一把雕刻刀,锋利,并且在技师手中非常有用。和任何锋利的工具一样,C会伤到那些不能掌握它的人。本文介绍C语言伤害粗心的人的方法,以及如何避免伤害
本文为大家介绍了C语言学习的一些陷阱。
这是我在阅读的时候记录的经典的东西哦!希望大家可以从中学的到很多自己想要的东西啊!在这里希望大家学习愉快!
易上手的工具往往功能有限,满足不了高手。得心应手的工具初学时的困难往往超过那些容易上手的工具。 但一旦熟练后,则会觉得那些易上手的工具最后都碍手碍脚。 使其难于做傻事往往使其难于做聪明事