C++学习笔记 基本数据类型

由于考研的编程题很多都需要使用C++语言来写,所以虽然我不太喜欢C++这门语言,那么还是得来看看。

算术类型

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

整型

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

数据类型含义最小单位
bool布尔类型未定义
char字符类型1字节
wchar_t宽字符类型2字节
char16_tUnicode字符类型2字节
char32_tUnicode字符类型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或Llong类型1000L,由于小写可能引起混淆,所以最好使用大写L
ll或LLlong long类型1000LL,最好采用大写形式

浮点型字面值

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

3.14   0.4   .4   1e10   0.

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

后缀含义例子
f或F单精度浮点数0.4F
l或Llong double类型10.00L,最好使用大写L
无后缀双精度浮点数3.14

字符和字符串字面值

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

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

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

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

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

前缀含义例子
uchar16_t类型u’c’
Uchar32_t类型U’c’
L宽字符L’c’
u8UTF-8字符串,仅能用于字符串字面量3.14

布尔值字面量

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值