如果要自己实现一个获取绝对值的函数,应该都没有问题,我这边也自己写了一个:

void myabs(int i){if(i>=0){printf("%d\n",i);}else{printf("%d\n",-i);}
}

但是,这个函数真的没有问题吗?如果i的值为-2147483648,会怎样,我们来试下:

#include <stdio.h>void myabs(int i){if(i>=0){printf("%d\n",i);}else{printf("%d\n",-i);}
}int main(void){int a = -2147483648;myabs(a);return 0;
}

上面代码编译后出现如下warning:

unsigned.c: In function 'main':
unsigned.c:12:2: warning: this decimal constant is unsigned only in ISO C90 [enabled by default]

执行后的结果为:

-2147483648

额,怎么没有变成正数呢。因为32位系统int的范围为-2147483648 ~ 2147483647,负数比正数可容纳的值大了1,

所以-2147483648取反后就无法保存在int型变量中了。

转载于:https://www.cnblogs.com/dyllove98/p/3149505.html

《c陷阱与缺陷》笔记--注意边界值相关推荐

  1. C陷阱与缺陷--笔记

    原文链接:http://codeshold.me/2017/01/c_trapsandpitfalls.html 词法陷阱 语法陷阱 语义陷阱 连接 库函数 预处理器 可移植性缺陷 附录 补充知识点 ...

  2. 【2018深信服 醒狮计划】《C陷阱与缺陷》学习笔记

    2018深信服"醒狮计划"笔记 先自我介绍一下,湖大研一计算机的菜鸡,本科网络工程的,大学里不务正业一直在做应用,大一自学过一段时间的MFC,Windows网络编程,感觉比控制台好 ...

  3. 《C陷阱与缺陷》学习笔记

    第一章 词法陷阱 笔记本:<C陷阱与缺陷> 创建时间:2018/4/23 22:06:21                                                  ...

  4. 《C陷阱与缺陷》学习笔记(2):作者有话说

    道阻且长,行则将至.埋头苦干,不鸣则已,一鸣惊人!加油,骚年! 1 参考资料 1.书本参考资料 <C陷阱与缺陷>前言: 2.网络参考资料 [维基百科]Andrew Koenig:https ...

  5. C 语言陷阱和缺陷(一)

    CSDN话题挑战赛第2期 参赛话题:学习笔记 文章目录 前言 简介 第一部分:词法缺陷 1. 1 = 不是 == 1.2 多字符记号 1.3 多字符记号一些例外说明 1.4 字符串和字符 第二部分:句 ...

  6. C陷阱与缺陷之词法陷阱

    该文章及后续文章均为阅读<C陷阱和缺陷>后的读数笔记,方便以后回顾 C陷阱和缺陷电子版图书下载地址:点击打开链接 第一章词法陷阱 1.1 = 不同于 == 在C语言中,符号=作为赋值运算符 ...

  7. 《C陷阱与缺陷》一导读

    前 言 C陷阱与缺陷 对于经验丰富的行家而言,得心应手的工具在初学时的困难程度往往要超过那些容易上手的工具.刚刚接触飞机驾驶的学员,初航时总是谨小慎微,只敢沿着海岸线来回飞行,等他们稍有经验就会明白这 ...

  8. 《Java解惑》陷阱和缺陷的目录

    陷阱和缺陷的目录 一.词汇问题 1.字母l在许多字体中都与数字1相像. 2.负的十六进制字面常量看起来像是正的. 3.八进制字面常量与十进制字面常量相像. 4.ASCII字符的Unicode转义字符容 ...

  9. 《C陷阱与缺陷》和《C专家编程》两本书又翻印了

    今天花了几个小时逛书店,偶然让我发现了<C陷阱与缺陷>和<C专家编程>这两本书.这让我很惊喜,喜欢收集书的我当然不会错过,一口气,两本书都收录了. 其实这两本我都已经下载了电子 ...

  10. C语言三剑客之《C陷阱与缺陷》一书精华提炼

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 1.C陷阱与缺陷概述 C语言像一把雕刻刀,锋利,并且在技师手中非常有用.和任何锋利的 ...

最新文章

  1. java开发和测试开发,附小技巧
  2. mysql升级5.5
  3. Java 代码性能优化
  4. python中对比数组长度_在Python中检索数组长度的首选方法
  5. 阿里云centos镜像地址以及个发行版本说明
  6. 【干货】推荐系统的商业价值:如何量化?怎么提升?
  7. java.sql.SQLException: Field 'id' doesn't have a default value解决方法
  8. 使用AdventNet快速开发网管软件Agent端
  9. 计算机桌面如何分区,笔记本怎么分区
  10. 物联网平台建设调研报告
  11. java 读取Excel(.xls格式)
  12. 英文的pdf文件怎么翻译成中文
  13. 如何提升原创文章排名与百度冰桶算法
  14. 新生研讨课有感——陈睿周
  15. 抗战史上知名的戚家刀PK日本真三武士刀刀型
  16. 最后期限Lite,兴趣社区圈子论坛小程序前后端
  17. 阿里云物联网平台之创建产品与设备
  18. Web前端和后端之区分
  19. [js项目]封装库-连缀
  20. C#获取同花顺,问财V(hexin-v)值

热门文章

  1. 计算机管理没有打印机列队,在Windows清除打印队列如果打印机被卡住,也没有打印输出...
  2. 完全复制一个dict_Redis主从复制getshell技巧
  3. tomcat截取日志_Tomcat的日志分割三种方法
  4. python实现简单小游戏_python实现简单井字棋小游戏
  5. 提高mysql insert速度_让你的insert操作速度增加1000倍的方法
  6. 历城职专学前计算机专业,历城职专学前教育专业2020学年第一学期技能运动会拉开帷幕...
  7. android网络转圈,android基于dialog加载时转圈圈很好的demo
  8. react生命周期函数_如何优雅的消灭掉react生命周期函数
  9. SDH与PDH的区别介绍
  10. HDMI视频光端机传输故障如何调试?