我知道了解可能并不重要,但这完全是出于我的好奇心。我在互联网上到处都有,每个网站都有不同的数字,这真令人沮丧。这个网站(https://en.cppreference.com/w/cpp/language/types)显示28种C ++的原始数据类型,而其他显示不同的数字。有人可以帮我吗?
答案 0 :(得分:3)
这实际上取决于您如何计算数据类型。 This web site列出了这7个:
bool
char
int
float
double
void
wchar_t
但是,可以使用signed
,unsigned
,short
,long
修改这些类型。您提到的站点列出了所有这些站点,以及新的站点,如char16_t
和char32_t
。我认为所列的28个列表非常全面,我想不出任何已被省略的列表(它们甚至涵盖了unsigned long long int
)。
所以28对我来说很合适。我的其他网站之所以有不同的数字,是因为它们不包括新网站,或者它们没有计算所有修饰符。其他站点可能认为unsigned short int
与short unsigned int
不同,但是两者是等效的。
答案 1 :(得分:1)
原始数据类型:这些数据类型是内置的或预定义的 数据类型,用户可以直接使用它们声明变量。 例如:int,char,float,bool等。
C ++中可用的原始数据类型为:
您认为short int
和long int
是原始数据类型。
它们与原始数据类型int
和数据修饰符short
和long
组合在一起。
数据类型修饰符:顾名思义,数据类型修饰符与内置数据类型一起使用,以修改特定数据类型可以保存的数据长度。
C ++中可用的数据类型修饰符为:
This为您提供了有用的答案。
答案 2 :(得分:1)
“原始数据类型”不是标准指定的术语,因此您可能会根据询问的对象而得到不同的答案。用defines the语以下类型为“内置”类型,这意味着它们不是从任何其他类型派生的:
void
bool
std::nullptr_t
float
double
long double
char16_t
char32_t
signed
和unsigned
的以下变体:
char
wchar_t
short
int
long
long long
该列表包含更多内容,但我相信这些是标准C ++中指定的唯一内容。
该标准在[basic.fundamental]中具有相同的含义(称这些“基本类型”),但是该列表导航起来并不方便。
总共有20种原始类型(忽略char
和wchar_t
与显式signed
/ unsigned
变体分开处理,因为它们的默认符号为平台相关)。
该标准还允许实现具有“扩展的”有符号和无符号整数类型。例如,Clang支持有符号和无符号的__int128_t
,它属于该类别,但是标准不需要。