《C++程序设计教程(第3版)》——第2章,第2节C++的基本数据类型

简介:

本节书摘来自华章出版社《C++程序设计教程(第3版)》一书中的第2章,第2.2节C++的基本数据类型,作者张志航,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.2 C++的基本数据类型
程序中经常需要处理数据,数据需要在计算机内部存储。描述一个数据需要两方面的信息:一是数据占用的存储空间的大小(即该数据占用的字节数);二是该数据允许执行的操作或运算。为数据赋予类型就可以区分这两方面的信息。C++的数据类型分为两类:一类是基本数据类型;另一类是导出数据类型(也称为构造数据类型)。基本数据类型包括字符型、整型、实型、双精度实型等。导出数据类型是由基本数据类型构造出来的数据类型,包括数组、指针、结构体和类等。表2-1中列出了C++基本数据类型及各类型数据的取值范围。
表2-1 C++中的基本数据类型


03c408d68d144d9caad61a5f6315a1a5406827a3

字符型量用来表示一个字符,在其1字节的存储空间中存放的是该字符的ASCII码值;也可以将字符型量用来表示一个8位二进制码的整型量。整型量用来存放整型数据,其占用的字节数随C++版本的不同而不同,可以占用2字节或4字节,在VS 2013中占用4字节。实型量用来存放实型数据,两种类型的实型量因占用的字节数不同,其表示的数据范围也不同。float型有时也称为单精度实型。逻辑型也称为布尔型,数据的取值只能是逻辑常量true(真)和false(假)。逻辑型量所占用的字节数在不同的编译系统中可能不同,在VS 2013中占用1字节。空类型就是无值型,一般用于声明函数没有返回值或函数没有参数,请参阅函数相关章节中对void的使用。
需要注意的是,表2-1中的数据类型可以划分成两个大类:“整型”和“浮点型”。“整型”包括char、int和bool类型,以及在第8章中介绍的枚举类型enum。计算机内部采用原码或补码形式表示“整型”数据。“浮点型”包括float和double类型,在计算机内部采用浮点形式表示,因此有时也把实型量称为浮点型量,把实型数据称为浮点型数据。注意float型量的有效数字位数是7位,double型量的有效数字位数是15~16位。有效数字的位数指十进制数据的位数,例如,float型实数123.456 789,计算机内部只能精确地表示到数字7这一位,后面的数字8和9无法精确表示。
在类型标识符char和int之前加上修饰词后,可以得到其他类型的整型量。这些修饰词有signed(有符号的)、unsigned(无符号的)、long(长的)、short(短的),组合后的数据类型如表2-2所示。
表2-2 C++中的全部整型数据类型


71d3b8b4053ae76ea4b97e7a07e58bebdaebd18a


620de225c50f49ad0d979d8509b48b67fcf0aa63

表2-2中第1列的数据类型标识符中方括号中的内容可省略,省略后得到第2列中类型标识符的最简形式。
类型标识符可用于定义变量,如“int a=5,b=-5;”定义了两个整型变量a和b,它们的初值分别是5和-5。int型量在内存中以补码形式存储,占有32个二进制位,上述a和b两个量在内存中存储形式为:
a:0000 0000 0000 0000 0000 0000 0000 0101
b:1111 1111 1111 1111 1111 1111 1111 1011
补码的最高位是符号位。5是正数,其补码形式与原码相同。-5的补码是其原码取反加1。
int型量与unsigned int型量的区别如图2-1所示。int型量是32位的,采用补码形式表示,有符号位;而unsigned int型量也是32位的,但采用原码形式表示,没有符号位。

图2-1 int型量与unsigned int型量的区别


d99e698673265403a931d3d021c7cfd776a1ea47

内存中有编码 1111 1111 1111 1111 1111 1111 1111 1011,如果把它赋给一个int整型量,它所代表的值为-5。如果把它赋给一个unsigned int整型量,它所代表的值为4 294 967 291(等于232-1-4)。

相关文章
|
9月前
|
IDE 编译器 项目管理
Dev-C++保姆级安装教程:Win10/Win11环境配置+避坑指南(附下载验证)
Dev-C++ 是一款专为 Windows 系统设计的轻量级 C/C++ 集成开发环境(IDE),内置 MinGW 编译器与调试器,支持代码高亮、项目管理等功能。4.9.9 版本作为经典稳定版,适合初学者和教学使用。本文详细介绍其安装流程、配置方法、功能验证及常见问题解决,同时提供进阶技巧和扩展学习资源,帮助用户快速上手并高效开发。
|
算法 数据挖掘 Shell
「毅硕|生信教程」 micromamba:mamba的C++实现,超越conda
还在为生信软件的安装配置而烦恼?micromamba(micromamba是mamba包管理器的小型版本,采用C++实现,具有mamba的核心功能,且体积更小,可以脱离conda独立运行,更易于部署)帮你解决!
578 1
|
存储 C++
c++的指针完整教程
本文提供了一个全面的C++指针教程,包括指针的声明与初始化、访问指针指向的值、指针运算、指针与函数的关系、动态内存分配,以及不同类型指针(如一级指针、二级指针、整型指针、字符指针、数组指针、函数指针、成员指针、void指针)的介绍,还提到了不同位数机器上指针大小的差异。
491 1
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
2872 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
存储 Linux C语言
【C++基础】数据类型详解
这篇文章详细介绍了C++中各种基本数据类型,包括整型、浮点型、字符型、字符串型和布尔型,以及它们的使用方式和范围。
266 4
|
C++
c++学习笔记01 基本知识与数据类型
C++学习笔记,涵盖了C++中的常量定义、数据类型、变量内存大小计算、基本数据类型(整型、实型、字符型、字符串型、布尔型)以及转义字符的使用。
149 4
|
C++
C++ : 程序设计简单实例
C++ : 程序设计简单实例
145 3
|
安全 C++
C++:程序设计实例
C++:程序设计实例
127 2
|
存储 JavaScript 前端开发
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)