C++基本数据类型

算术类型

需要提前说明,C++语言属于比较低级的语言,所以没有规定数据类型的具体大小,所有数据类型都可能由于机器不同而产生差异。标准只规定了这些数据类型的最小范围,这一点我们在使用C++的时候也要注意。

整型

整型数据类型和它们的大小总结在下表:

数据类型

含义

最小单位

bool

布尔类型

未定义

char

字符类型

1字节

wchar_t

宽字符类型

2字节

char16_t

Unicode字符类型

2字节

char32_t

Unicode字符类型

4字节

short

短整型

2字节

int

整型

2字节

long

长整型

4字节

long long

长整型

8字节

wchar_t、char16_t和char32_t 是扩展字符类型,第一个用于宽字符,后两者用于Unicode字符集。

浮点型

浮点型数据类型和它们的大小总结在下表:

数据类型

含义

最小单位

float

单精度浮点类型

6位有效数字

double

双精度类型

10位有效数字

long double

扩展精度类型

10位有效数字

带符号的类型

在前面介绍的整型类型中,除了布尔类型和扩展的字符类型之外,其他整型都可以是有符号的(signed)和无符号的(unsigned),它们的区别在于取值范围。假如一个有符号变量的取值范围是-128到127,那么相应的无符号数取值范围就是0到255。默认情况下,类型是有符号类型,如果需要无符号类型需要显式指定。

在进行运算的时候,有符号数会被转换为无符号数进行运算,在这个过程中运算结果可能意外改变。所以为了稳妥起见,不要将有符号数和无符号数混合进行计算。

字面量

直接写在程序中的值称为字面量。由于数据类型有不同类型,所以字面量相应的也有不同的类型。

整型字面量

整型字面值可以有十进制、八进制和十六进制的形式。默认的数字就是十进制的,例如100;如果数字以0开头,那么就是八进制的数,例如024;如果数字以0x或0X开头,那么就是16进制的,例如0xcafe。

后缀

含义

例子

u或U

无符号数

1000U

l或L

long类型

1000L,由于小写可能引起混淆,所以最好使用大写L

ll或LL

long long类型

1000LL,最好采用大写形式

浮点型字面值

浮点数字面值可以有小数和科学计数法两种形式 ,以下都是有效的浮点型字面值。

3.14   0.4   .4   1e10   0.

复制

浮点型字面值的后缀情况见下表。

后缀

含义

例子

f或F

单精度浮点数

0.4F

l或L

long double类型

10.00L,最好使用大写L

无后缀

双精度浮点数

3.14

字符和字符串字面值

由单引号包括的单个字符是字符字面量,例如'c'

由双引号包括的一串字符是字符串字面量,例如"abc",需要注意在C++中,字符串字面量会由编译器隐式添加一个\0字符,以兼容C语言。所以"abc"这个字符串的长度其实是4。这一点需要注意。

如果两个字符串字面量仅由空格分隔,那么这两个字符串实际上是相连的。

char long_string[] = "This is a long line "
    "and next line";

复制

字符和字符串字面量也有一些前缀,总结如下。

前缀

含义

例子

u

char16_t类型

u’c’

U

char32_t类型

U’c’

L

宽字符

L’c’

u8

UTF-8字符串,仅能用于字符串字面量

3.14

布尔值字面量

布尔值字面量只有truefalse两个。

你可能感兴趣的:(c++,java,开发语言)