在上一节关于变量的课程中,我们谈到了变量是可以存储信息的一段内存的名称这一事实。简要概括起来,计算机的随机存取存储器(RAM),可供程序使用。当定义一个变量时,为该变量预留一块内存。
最小的内存单位是二进制数字(位),它可以容纳0或1的值。你可以认为有点像传统的电灯开关,要么是灯关了(0),要么是(1)。两者之间没有关系。如果你看一段随机的内存,你会看到的是…011010100101010…或者一些组合。内存被组织成连续的单元,称为内存地址(简称地址)。类似于街道地址如何在街道上找到给定的房子,内存地址使我们能够在特定的位置查找和访问内存内容。也许令人惊讶的是,在现代计算机中,每一位都没有自己的地址。最小可寻址的内存单元称为字节。现代标准是一个字节由8个连续位组成。请注意,一些旧的或非标准的机器可能有不同大小的字节——但是,我们一般不必担心这些。对于这些教程,我们假设一个字节是8位。
因为计算机上的所有数据只是一个位序列,所以我们使用一种数据类型(通常简称为“类型”)来告诉我们如何以某种有意义的方式解释内存的内容。您已经看到了一个数据类型的例子:整数。当我们将一个变量声明为一个整数时,我们告诉编译器“这个变量地址的内存将被解释为一个整数”。
当您将值赋给数据类型时,编译器和CPU负责将您的值编码为该数据类型的适当比特序列的细节。当你要求你的价值回来时,你的数字是从记忆中的比特序列中“重组”出来的。
还有很多其他的数据类型的C++除了整数,其中我们将不久。作为简写,我们通常将变量的“数据类型”称为“类型”。
基本数据类型
C++有一定的数据类型的内置支持。这些被称为基本数据类型(在C++规范),但往往是非正式地称为基本类型,原始类型或内置类型。
下面是一些基本数据类型的列表,其中一些已经被您看到了:
最小的内存单位是二进制数字(位),它可以容纳0或1的值。你可以认为有点像传统的电灯开关,要么是灯关了(0),要么是(1)。两者之间没有关系。如果你看一段随机的内存,你会看到的是…011010100101010…或者一些组合。内存被组织成连续的单元,称为内存地址(简称地址)。类似于街道地址如何在街道上找到给定的房子,内存地址使我们能够在特定的位置查找和访问内存内容。也许令人惊讶的是,在现代计算机中,每一位都没有自己的地址。最小可寻址的内存单元称为字节。现代标准是一个字节由8个连续位组成。请注意,一些旧的或非标准的机器可能有不同大小的字节——但是,我们一般不必担心这些。对于这些教程,我们假设一个字节是8位。
下图显示了一些连续的内存地址,以及相应的字节数据:
1
2
3
4
5
bool bValue;
char chValue;
int nValue;
float fValue;
double dValue;
因为计算机上的所有数据只是一个位序列,所以我们使用一种数据类型(通常简称为“类型”)来告诉我们如何以某种有意义的方式解释内存的内容。您已经看到了一个数据类型的例子:整数。当我们将一个变量声明为一个整数时,我们告诉编译器“这个变量地址的内存将被解释为一个整数”。
当您将值赋给数据类型时,编译器和CPU负责将您的值编码为该数据类型的适当比特序列的细节。当你要求你的价值回来时,你的数字是从记忆中的比特序列中“重组”出来的。
还有很多其他的数据类型的C++除了整数,其中我们将不久。作为简写,我们通常将变量的“数据类型”称为“类型”。
基本数据类型
C++有一定的数据类型的内置支持。这些被称为基本数据类型(在C++规范),但往往是非正式地称为基本类型,原始类型或内置类型。
下面是一些基本数据类型的列表,其中一些已经被您看到了:
1
2
int nValue;
nValue = 5; // copy assignment