C++菜鸟学习笔记系列(3)

(前两天比较忙,没有进行更新,今天及时又写了一篇)
本期主题:C++中基本内置类型的使用。
与C语言类似的C++也定义了一套包括算术类型和空类型在内的基本数据类型,其中算术类型包含了字符、整型数、布尔值和浮点数等,在不同的机器上各种类型的尺寸(存储空间)也有所差别。下表中列出了各种数据类型的最小尺寸。

图片来源:C++ primer 2.1 基础内置类型

小知识:对于比特、字节、字的含义及组成很多同学可能还理解不太清楚,作者就以自己对其含义的理解为大家介绍一下:
计算机中最小的运算单元是比特:每个bit非0即1,8 bit 又组成一个字节。
字节(byte)是计算机的最小可寻址内存块。
而存储的基本单元是“字”,一个“字”由4或8个字节组成,即32或64个比特,也就是32位或者64位。

内置类型的自动转换

在C++中如果我们使用了A类型来定义一个变量 a,但是却给它输入了B类型的数据,则程序会自动进行类型转换。
下面我们就看一下某种类型的对象被强行赋予了另一种类型的值时会发生什么改变。

/*
Author: wxc_1998
Date: 2018/9/20
*/#include <iostream>using namespace std;void main()
{int i;i = 3.1415926;cout << "the value of i is : " << i;bool flag;flag = i;cout << endl << "the value of flag is:" << flag ;double pi;pi = i;cout << endl << "the value of pi is:" << pi ;unsigned char c = 1;cout << endl << "the value of c is:" << c ;cout << endl << "press any key to continue!" << endl;cin.clear();cin.sync();cin.get();
}

当然在大多数我们肯定不会犯这种错误,我们既然定义了一个变量为整型数,那么我们为什么要故意输入浮点数呢?但是我们在写代码时却经常不可避免的在运算过程中产生一些不符合定义类型的情况出现。
下面我们再看一个小例子:

/*
Author: wxc_1998
Date: 2018/9/20
*/#include <iostream>using namespace std;void main()
{int i = -10;unsigned int u = 5;double d =3.14;cout << "i + i = " << i + i << endl;cout << "u + u = " << u + u << endl;cout << "u + i = " << u + i << endl;cout << "u - i = " << u - i << endl;cout << "i - u = " << i - u << endl;cout << "i + d = " << i + d << endl;cout << "i - d = " << i - d << endl;cout << endl << "press any key to continue!" << endl;cin.clear();cin.sync();cin.get();
}

对于超出取值范围的情况,C++会进行取余运算;而对于取值类型改变的情况C++会进行强行转换。

好了今天的博客就写到这里了。

注:虽然这篇博客的内容十分简单,但是大家若有转载还请标明出处!

还有大家若对博客中的内容有任何问题可以随时联系我提问。

C++菜鸟学习笔记系列(3)——基本内置类型的使用相关推荐

  1. BizTalk学习笔记系列之二:实例说明如何使用BizTalk

    BizTalk学习笔记系列之二:实例说明如何使用BizTalk --.BizTalk学习笔记系列之二<?XML:NAMESPACE PREFIX = O /> Aaron.Gao,2006 ...

  2. SQLServer学习笔记系列2

    SQLServer学习笔记系列2 一.写在前面的话 继上一次SQLServer学习笔记系列1http://www.cnblogs.com/liupeng61624/p/4354983.html以后,继 ...

  3. 菜鸟学习笔记:Java提升篇12(Java动态性2——动态编译、javassist字节码操作)

    菜鸟学习笔记:Java提升篇12(Java动态性2--动态编译.javassist字节码操作) Java的动态编译 通过脚本引擎执行代码 Java字节码操作 JAVAssist的简单使用 常用API ...

  4. 菜鸟学习笔记:Java提升篇11(Java动态性1——注解与反射)

    Java提升篇11(Java其它高级特性--注解与反射) 注解(Annotation) JDK内置注解 自定义注解 元注解(meta-annotation) 反射(reflection) 动态语言 反 ...

  5. 菜鸟学习笔记:Java提升篇3(容器3——泛型、排序)

    菜鸟学习笔记:Java容器3--泛型.排序 泛型 泛型类 泛型接口 泛型方法 泛型继承 通配符"?" 泛型知识点补充 容器排序 Comparable接口与compareTo方法 C ...

  6. 菜鸟学习笔记:Java基础篇2(变量、运算符、流程控制语句、方法)

    菜鸟学习笔记:Java基础篇2 变量 基本概念 变量作用域 final关键字 运算符 算术运算符 比较运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 运算符优先级 Java三种流程控制语句 顺序 ...

  7. SQL Server 2008/2012中SQL应用系列及BI学习笔记系列--目录索引

    SQL Server 2008中的一些特性总结及BI学习笔记系列,欢迎与邀月交流. 3w@live.cn  ◆0.SQL应用系列 1.SQL Server 2008中SQL增强之一:Values新用途 ...

  8. 菜鸟学习笔记:Java提升篇10(网络2——UDP编程、TCPSocket通信、聊天室案例)

    菜鸟学习笔记:Java提升篇10(网络2--UDP编程.TCPSocket通信) UDP编程 TCP编程(Socket通信) 单个客户端的连接 多个客户端的连接(聊天室案例) UDP编程 在上一篇中讲 ...

  9. 菜鸟学习笔记:Java提升篇9(网络1——网络基础、Java网络编程)

    菜鸟学习笔记:Java提升篇9(网络1--网络基础.Java网络编程) 网络基础 什么是计算机网络 OS七层模型 Java网络编程 InetAddress InetSocketAddress URL类 ...

最新文章

  1. NSD WINDOWS--2014.8.11
  2. EKL相关(一)、安装环境
  3. Python中判断字典的键或值在不在字典中 默认是判断的依据是条目在不在字典的键集合中
  4. Java 自动装箱性能
  5. 解决Github速度太慢的几种方案
  6. Python 简单网页爬虫学习
  7. jmeter 实际运行线程数达不到设定值_Jmeter技术知识-常用组件实战演示(2020年最新)...
  8. As we all know, Java 8 provides many new features
  9. 计算机信息技术基础知识教案,计算机的基础知识
  10. 浙江大学-机器学习-ppt截图
  11. AD7606 SPI模式 网上问题汇总
  12. 有了抖音账号,应该这样做
  13. (40)STM32——OV2640摄像头实验
  14. 咬文嚼字的有趣例子_十个你可能没听过的成语,藏着十个有趣的故事
  15. DSP-FTU实现DNP3.0
  16. 【题解】 [SCOI2012]滑雪
  17. 2022年校招互联网大厂薪酬状况如何?“白菜”总包接近40W是真是假?
  18. socket网络编程(2):socket操作相关函数
  19. 【转载】Apollo修改数据库相关配置不生效的问题
  20. Pintech品致-静电放电发生器的主要用途是什么?

热门文章

  1. 英语作文计算机的出现,电脑开机显示英文是怎么回事
  2. 好看响应式Emlog博客主题模板
  3. MySQL数据库个人笔记(一)
  4. 【综述】推荐系统偏差问题 去偏最新研究进展(Bias and Debias in Recommender System)
  5. 使用Sakura Frp 将本地VNCServer端口映射到公网上
  6. emotion使用笔记
  7. eMMC编程基础 -(二)eMMC基础介绍
  8. 贵州大学-编译原理实验2-句法分析器
  9. 设计师应该选择什么电脑配置-星野设计师
  10. 线性代数 矩阵和向量空间