C++11:longlong超长整型和nullptr初始化空指针

[复制链接]
发表于 2022-12-31 10:28:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本文介绍 C++11 标准中新添加的 long long 超长整型和 nullptr 初始化空指针。
1. C++11:long long 超长整型

C++ 11 标准中,基于整数大小的考虑,共提供了如下表所示的这些数据类型。与此同时,标准中还明确限定了各个数据类型最少占用的位数。
整数类型等价类型C++11标准规定占用最少位数shortshort int(有符号短整型)至少 16 位(2 个字节)signed shortshort int(有符号短整型)至少 16 位(2 个字节)signed short intshort int(有符号短整型)至少 16 位(2 个字节)unsigned shortunsigned short int(无符号短整型)至少 16 位(2 个字节)unsigned short intunsigned short int(无符号短整型)至少 16 位(2 个字节)intint(有符号整形)至少 16 位(2 个字节)signedint(有符号整形)至少 16 位(2 个字节)signed intint(有符号整形)至少 16 位(2 个字节)unsignedunsigned int(无符号整形)至少 16 位(2 个字节)unsigned intunsigned int(无符号整形)至少 16 位(2 个字节)longlong int(有符号长整形)至少 32 位(4 个字节)long intlong int(有符号长整形)至少 32 位(4 个字节)signed longlong int(有符号长整形)至少 32 位(4 个字节)signed long intlong int(有符号长整形)至少 32 位(4 个字节)unsigned longunsigned long int(无符号长整形)至少 32 位(4 个字节)unsigned long intunsigned long int(无符号长整形)至少 32 位(4 个字节)long long(C++11)long long int(有符号超长整形)至少 64 位(8 个字节)long long int(C++11)long long int(有符号超长整形)至少 64 位(8 个字节)signed long long(C++11)long long int(有符号超长整形)至少 64 位(8 个字节)signed long long int(C++11)long long int(有符号超长整形)至少 64 位(8 个字节)unsigned long long(C++11)unsigned long long int(无符号超长整型)至少 64 位(8 个字节)unsigned long long int(C++11)unsigned long long int(无符号超长整型)至少 64 位(8 个字节)
C++11 标准规定,每种整数类型必须同时具备有符号(signed)和无符号(unsigned)两种类型,且每种具体的有符号整形和无符号整形所占用的存储空间(也就是位数)必须相同。不过需要注意的是,C++11 标准中只限定了每种类型最少占用多少存储空间,不同的平台可以占用不同的存储空间。
在上表罗列的这些数据类型中,long long 超长整型是 C++ 11 标准新添加的。其实早在 1995 年,就有人提议将 long long 整形写入 C++ 98 标准,但被委员会拒绝了。而后 long long 整形被 C99 标准(C语言标准之一)采纳,并逐渐被很多编译器支持,于是 C++ 标准委员会重新决定将 long long 整形写入 C++ 11 标准中。
如同 long 类型整数需明确标注 "L" 或者 "l" 后缀一样,要使用 long long 类型的整数,也必须标注对应的后缀:

  • 对于有符号 long long 整形,后缀用 "LL" 或者 "ll" 标识。例如,"10LL" 就表示有符号超长整数 10;
  • 对于无符号 long long 整形,后缀用 "ULL"、"ull"、"Ull" 或者 "uLL" 标识。例如,"10ULL" 就表示无符号超长整数 10。
如果不添加任何标识,则所有的整数都会默认为 int 类型。
对于 long long 类型来说,如果想了解当前平台上 long long 整形的取值范围,可以使用头文件中与 long long 整形相关的 3 个宏,分别为 LLONG_MIN、LLONG_MAX 和 ULLONG_MIN:
1)LLONG_MIN:代表当前平台上最小的 long long 类型整数;
2)LLONG_MAX:代表当前平台上最大的 long long 类型整数;
3)ULLONG_MIN:代表当前平台上最大的 unsigned long long 类型整数(无符号超长整型的最小值为 0)。
举个例子:
[code]#include #include #include using namespace std;int main(){    cout
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表