C++标准数据类型

本文介绍了C++中的基本数据类型,包括整型(如int和longlong)、浮点型(float和double)、布尔型以及字符型。讨论了它们的存储容量、适用场景和类型转换规则,以及如何根据需求选择合适的类型。
摘要由CSDN通过智能技术生成

什么是数据类型?
在变量一章中,我们提到过,变量就是存储数据的容器,根据数据大小不同选择合适的容器存储。那么,C++中有哪些大小不同的数据容器呢?我们先来看一个数据类型总览,对C++数据类型有一个大体的认知。

整型

整型最常见的就是 int,占 4 个字节,即 4 * 8 = 32 比特,可以表达的整数个数为 232232,由于包括负数,0,和正数,实际表示范围为 - 231231 ~ 231231-1,如果是 unsigned int,即没有负数区间,表示范围为 0 ~ 232232-1。(暂时我们姑且这么认为,后面会讲到原码、反码和补码原理)。

cout << sizeof(123) << " " << sizeof(int) << endl;

输出:
4 4
然而,当 int 无法满足存储需要时,我们需要更大的数据类型 long long,占 8 个字节。

cout << sizeof(123456789123456789) << " " << sizeof(long long) << endl;

输出:
8 8
如果我们要将 123 这个整数声明为 long long 类型,可以加上后缀 ll 或 LL。

cout << sizeof(123ll) << " " << sizeof(456LL) << endl;

输出:
8 8
在实际编程过程中,如果需要多次使用 long long,我们可以通过 typedef 关键字将 long long 重命名为 LL。(注意:程序中最好不要出现小写 l,容易和数字 1 混淆)。

#include
using namespace std;

typedef long long LL;

int main() {

LL a = 123;
cout << a << " " << sizeof(a) << endl;

return 0;

}

输出:
123 8
那么,我们什么时候需要用到 long long 呢?比如:

1.当题目中数据范围明显超出 int,比如 1000000 个数字,每个数字范围都是 int,求和。

2.比较隐晦,比如 20 的阶乘,结果 1 * 2 * 3 * …… * 20。

如果不确定,直接开 long long 空间。(大多数情况对结果没有影响,但是当涉及到位运算时候可能对结果有影响,需要事前评估一下)

什么是 short?long 和 long long 有什么区别?

在C++ primer,或者c++标准书中是这样规定的:sizeof(short) ≤ sizoef(int) ≤ sizeof(long) ≤ sizoef(long long)
它并没有回答各个数据类型的具体长度,而是由编译器自行决定。

在我们考试的系统中,short 占 2 个字节,long 占 8 个字节。(大多数书上写的是 4 字节,这并不适用于 NOI Linux2.0 系统)

浮点型

float 占 4 字节,保留有效位数 7 位,double 占 8 字节,保留有效位数 16 位。一般在算法竞赛中,我们都使用 double。

浮点型默认为 double 类型,当然也可以通过后缀 f、F、L 改变类型。

cout << sizeof(1.23) << endl;
cout << sizeof(1.23f) << endl;
cout << sizeof(1.23F) << endl;
cout << sizeof(1.23L) << endl;

输出:
8
4
4
16
布尔型

1.布尔类型用来判断真假,结果只有 true 和 false 两种

2.true转换为整型值为 1,false 转换为整型值为 0

  1. 非 0 值可以隐式转换为 true,而 0 转换为 false

字符型

ASCII码:

常用转义字符:

在这里插入图片描述

公众号:和黑猫学编程 后台回复【223659】
领取最新版本《C++语法闯关》电子书

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值