因为计算机上的所有数据只是一个位序列,所以我们使用一种数据类型(通常简称为“类型”)来告诉我们如何以某种有意义的方式解释内存的内容。您已经看到了一个数据类型的例子:整数。当我们将一个变量声明为一个整数时,我们告诉编译器“这个变量地址的内存将被解释为一个整数”。
当您将值赋给数据类型时,编译器和CPU负责将您的值编码为该数据类型的适当比特序列的细节。当你要求你的价值回来时,你的数字是从记忆中的比特序列中“重组”出来的。
还有很多其他的数据类型的C++除了整数,其中我们将不久。作为简写,我们通常将变量的“数据类型”称为“类型”。
基本数据类型
C++有一定的数据类型的内置支持。这些被称为基本数据类型(在C++规范),但往往是非正式地称为基本类型,原始类型或内置类型。
尽管直接初始化窗体看起来像一个函数调用,编译器仍然跟踪哪些名称是变量,哪些是函数,以便它们能够正确地被解析。
直接初始化可以比某些数据类型的复制初始化性能更好,并且当我们开始讨论类时,还有一些其他好处。它也有助于区分初始化和赋值。因此,我们建议在复制初始化时使用直接初始化。
规则:支持直接初始化复制初始化
统一的初始化在C++ 11
因为C++有机增长,复制初始化和直接初始化形式仅适用于某些类型的变量(例如,您不能使用这些形式的初始化值列表)。
为了提供一个初始化机制,将所有数据类型,C++ 11增加了一个新的初始化形式称为统一的初始化(也叫括号初始化):
一个没有初始化的变量称为未初始化的变量。在C++中,一个基本变量,初始化将垃圾价值你指派一个有效直到。我们在前一课中讨论了变量、初始化和赋值。
注:C++也有其他非基本类型,如指针,结构体,类。有些默认情况下不初始化,其中一些是。我们将在以后的课程中探讨这些类型。现在,假设所有类型在默认情况下不初始化是比较安全的。
规则:总是初始化基本变量,或者在定义它们之后尽快分配一个值给它们。
定义多个变量
在一个语句中用逗号分隔名称,可以定义同一类型的多个变量。下面的2段代码实际上是相同的:
当您将值赋给数据类型时,编译器和CPU负责将您的值编码为该数据类型的适当比特序列的细节。当你要求你的价值回来时,你的数字是从记忆中的比特序列中“重组”出来的。
还有很多其他的数据类型的C++除了整数,其中我们将不久。作为简写,我们通常将变量的“数据类型”称为“类型”。
基本数据类型
C++有一定的数据类型的内置支持。这些被称为基本数据类型(在C++规范),但往往是非正式地称为基本类型,原始类型或内置类型。
下面是一些基本数据类型的列表,其中一些已经被您看到了:
bool bValue;
char chValue;
int nValue;
float fValue;
double dValue;
尽管直接初始化窗体看起来像一个函数调用,编译器仍然跟踪哪些名称是变量,哪些是函数,以便它们能够正确地被解析。
直接初始化可以比某些数据类型的复制初始化性能更好,并且当我们开始讨论类时,还有一些其他好处。它也有助于区分初始化和赋值。因此,我们建议在复制初始化时使用直接初始化。
规则:支持直接初始化复制初始化
统一的初始化在C++ 11
因为C++有机增长,复制初始化和直接初始化形式仅适用于某些类型的变量(例如,您不能使用这些形式的初始化值列表)。
为了提供一个初始化机制,将所有数据类型,C++ 11增加了一个新的初始化形式称为统一的初始化(也叫括号初始化):
1
2
int nValue;
nValue = 5; // copy assignment
C++ does not provide any built-in way to do a direct or uniform assignment.
未初始化变量
一个没有初始化的变量称为未初始化的变量。在C++中,一个基本变量,初始化将垃圾价值你指派一个有效直到。我们在前一课中讨论了变量、初始化和赋值。
注:C++也有其他非基本类型,如指针,结构体,类。有些默认情况下不初始化,其中一些是。我们将在以后的课程中探讨这些类型。现在,假设所有类型在默认情况下不初始化是比较安全的。
规则:总是初始化基本变量,或者在定义它们之后尽快分配一个值给它们。
定义多个变量
在一个语句中用逗号分隔名称,可以定义同一类型的多个变量。下面的2段代码实际上是相同的: