基本数据类型是构建其他所有数据类型的构造块,本人认为这部分是计算机编程的基础,值得得到大家的注意。

  首先,在本章中作者提到了避免使用magic number。使用magic number这种做法是极其不值得提倡的,在C语言中我们在编程开始的时候应该把我们心中的常量用宏定义好,当我们需要这个常量的时候直接使用这个宏就可以了。但是假如我们直接使用这个常量,假设我们想定义我们心目中的在这个程序中允许出现的最小值,我们先将其看成0。在程序的迭代开发过程中,我们又允许负数的出现了,这时候我们需要将这个最小值减小。但是如果我们在很多地方直接用到了这个常量,那修改过程是极其残酷的。并且如果某个地方没有得到修改,可能会导致程序运行的异常,debug的过程大家都是深有体会的。

  第二点,作者提到了要检查整数的溢出。我个人的观点,对于加减法这种对数据的数量级影响不大的运算,可能不易发生此类现象。但如果是乘法这样的运算,那就很有可能出现整数溢出的现象。假设要求两个数的最大公倍数,两个数都是在20万左右。人们的常规设想就是先求最小公约数,然后用两个数的乘积除以两个数的最小公约数。但是求两个数的乘积时就会发生整数溢出的现象,int型变量只有32位,而乘积的结果远远超过int型的容量。因此就会发生溢出现象。所以,我们可以采用double型的变量,但是double型的变量可能存在精度的问题。可能更好的解决办法是使用long long型变量,但是由于编译器的原因,此类型变量不是在所有场景均可以使用。

  第三点,要避免数量级相差巨大的数之间的加减运算。尤其是在进行浮点数的计算时,通过数学上严格的证明,当两个数的数量级相差巨大时,计算结果的精度会得到极其大的削减。同样在也要避免等量的浮点数相减,由于精度的不同,实际情况下可能并不等量,导致运行结果出错,出现除零现象或者计算结果精度太差的现象。

  第四点,要注意字符串指针与字符数组之间的区别。这是在C语言中出现的现象,因为C语言中的字符串操作差不多都是通过调用其他函数实现的,普通的赋值语句只会使二者指向同一个字符串。并且要注意用null初始化字符串,否则则会出现悬空指针的现象,产生使程序崩溃的错误。

  第五点,作者提到了creating your own types这种现象,我个人觉得ruby在这个方面目前是做的比较好的。ruby的元编程可以构造出可读性极强的代码,具有极强的领域性。但是也存在极强的局限性。这个问题在本章节只是初步涉及,本人也没有过多的深入研究。

  以上就是我对本章节的阅读理解。

homework-附加题:第12章基本数据类型阅读总结的更多相关文章

  1. c++primerplus(第六版)编程题——第3章(数据类型)

    声明:作者为了调试方便,每一章的程序写在一个工程文件中,每一道编程练习题新建一个独立文件,在主函数中调用,我建议同我一样的初学者可以采用这种方式,调试起来会比较方便. 工程命名和文件命名可以命名成易识 ...

  2. Linux就这个范儿 第12章 一个网络一个世界

    Linux就这个范儿 第12章 一个网络一个世界 与Linux有缘相识还得从一项开发任务说起.十八年前,我在Nucleus  OS上开发无线网桥AP,需要加入STP生成树协议(SpanningTree ...

  3. JS读书心得:《JavaScript框架设计》——第12章 异步处理

    一.何为异步   执行任务的过程可以被分为发起和执行两个部分. 同步执行模式:任务发起后必须等待直到任务执行完成并返回结果后,才会执行下一个任务. 异步执行模式:任务发起后不等待任务执行完成,而是马上 ...

  4. 阿里巴巴集团2016校园招聘-Python工程师笔试题(附加题+部分答案)

    前言 第一次网上笔试,被虐的很惨.一是不太习惯,最主要的是还是自己对Python的掌握,还不够熟练.下面是这次阿里笔试相关信息 笔试时间是,2015年8月23日,10:00——12:00 对于笔试题, ...

  5. ASM:《X86汇编语言-从实模式到保护模式》第12章:存储器的保护

    12章其实是11章的拓展,代码基本不变,就是在保护模式下展开讨论. ★PART1:存储器的保护机制 1. 修改段寄存器的保护 当执行把段选择子传到段寄存器的选择器部分的时候,处理器固件在完成传送之前, ...

  6. 【JavaScript权威指南(第五版)】笔记之第一部分 核心javascript (第1章~第12章)

    第一章 javascript概述 ①.javascript是一种松散类型语言;也是一种解释型语言;         第二章 词法结构 ①.大小写敏感         第三章 数据类型和值 ①.isFi ...

  7. 【机器学习实战】第12章 使用FP-growth算法来高效发现频繁项集

    第12章 使用FP-growth算法来高效发现频繁项集 前言 在 第11章 时我们已经介绍了用 Apriori 算法发现 频繁项集 与 关联规则.本章将继续关注发现 频繁项集 这一任务,并使用 FP- ...

  8. Java核心技术卷一基础知识-第12章-泛型程序设计-读书笔记

    第12章 泛型程序设计 本章内容: * 为什么要使用泛型程序设计 * 定义简单泛型类 * 泛型方法 * 类型变量的限定 * 泛型代码和虚拟机 * 约束与局限性 * 泛型类型的继承规则 * 通配符类型 ...

  9. Hadoop专业解决方案-第12章 为Hadoop应用构建企业级的安全解决方案

    一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,春节期间,项目进度有所延迟,不过元宵节以后大家已经步入正轨, 目前第12章 为Hadoop应用构 ...

随机推荐

  1. 极客编程必备的五大PHP开发应用

    有了PHP应用可以帮助编码爱好者事半功倍,提升项目质量:有了这些最新的且灵活的PHP应用使创建编码项目更加简单.便捷.本文,我们收集了五大最新的PHP开发应用. PHP应用在网络上并不多见.最重要的是 ...

  2. [置顶] 手机通过socket控制电脑关机,重启,注销等功能

    服务端 package com.pc; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOE ...

  3. Web内容管理系统 Magnolia 介绍-挖掘优良的架构(1)

    Magnolia简介: Magnolia CMS是一家瑞士公司自2003年起发布的一个基于Java的开源内容管理系统.它适合且已被使用在以下领域:电子商务(例如:COOP.Migros.Rossman ...

  4. 函数lock_rec_bitmap_reset

    /*********************************************************************//** Resets the record lock bi ...

  5. BootStrap图标

  6. IIS大数据请求设置方法

    大并发大数据量请求一般会分为几种情况: 1.大量的用户同时对系统的不同功能页面进行查找,更新操作 2.大量的用户同时对系统的同一个页面,同一个表的大数据量进行查询操作 3.大量的用户同时对系统的同一个 ...

  7. 基于AJAX的长轮询(long-polling)方式实现简单的聊天室程序

    原理: 可以看:http://yiminghe.javaeye.com/blog/294781 AJAX 的出现使得 JavaScript 可以调用 XMLHttpRequest 对象发出 HTTP ...

  8. Relativelayout属性

    // 相对于给定ID控件 android:layout_above 将该控件的底部置于给定ID的控件之上; android:layout_below 将该控件的底部置于给定ID的控件之下; andro ...

  9. busybox filesystem httpd php-5.5.31 sqlite3 webserver

    /******************************************************************** * busybox filesystem httpd php ...

  10. BrowserSync,调试利器--自动刷新(转

    ---恢复内容开始--- 请想象这样一个场面:你开着两个显示器,一边是IDE里的代码,另一边是浏览器里的你正在开发的应用.此时桌上还放着你的手机,手机里也是这个开发中的应用.然后,你新写了一小段代码, ...