当前位置: 首页 > news >正文

C++基础——数据类型

1 概述

在创建变量和常量的时候,都需要指定其数据类型,以便为其分配合适的内存空间。
其中宏常量不需要指定类型,是因为宏定义是字符替换。

2 整型

整型表示的是整数,C++中的整型有以下几种:

数据类型占用空间取值范围
short(短整型)2字节(-2^15 ~ 2^15-1)
int(整型)4字节(-2^31 ~ 2^31-1)
long(长整形)Windows为4字节,Linux为4字节(32位),8字节(64位)(-2^31 ~ 2^31-1)
long long(长长整形)8字节(-2^63 ~ 2^63-1)

这是在常用的环境中,但是需要知道的是,各个数据类型的长度取决于编译器和操作系统的具体实现。不同的cpu架构和abi版本其实现会有所不同。

3 sizeof关键字

sizeof关键字能够统计不同数据类型所占用的内存大小

#include <iostream>
using namespace std;int main() {short a = 10;cout << "short类型占用空间为:" << sizeof(a) << endl;cout << "int类型占用空间为:" << sizeof(int) << endl;cout << "long类型占用空间为:" << sizeof(long) << endl;cout << "long类型占用空间为:" << sizeof(long long) << endl;
}

输出

short类型占用空间为:2
int类型占用空间为:4
long类型占用空间为:4
long类型占用空间为:8

windows10,64位主机上输出如上。

4 浮点型

浮点型用于表示带小数的数值。可分为单精度float和双精度double,两者表示的有效数字范围不同。

数据类型占用空间有效数字范围
float4字节7位有效数字
double8字节15~16位有效数字
#include <iostream>
using namespace std;int main() {float f = 3.14159265358;double d = 3.14159265358;cout << "sizeof(float) = " << sizeof(f) << endl;cout << "sizeof(float) = " << sizeof(d) << endl;return 0;
}

输出

sizeof(float) = 4
sizeof(float) = 8

5 字符型

字符型用于显示单个字符

#include <iostream>
using namespace std;int main() {char c = 'a';cout << "sizeof(char) = " << sizeof(c) << endl;return 0;
}

输出

sizeof(char) = 1

除此之外,还可以将ASCII码表中的数值直接赋值给char类型

#include <iostream>
using namespace std;int main() {char c = 97;cout << c << endl;return 0;
}

输出

sizeof(char) = 1
a

6 转义字符

表示一些不能显示的ASCII字符

转义字符含义ASCII码值(十进制)
\a警报007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\\代表一个反斜线字符""092
代表一个单引号(撇号)字符039
"代表一个双引号字符034
?代表一个问号063
\0数字0000
\ddd8进制转义字符,d范围0~73位8进制
\xhh16进制转义字符,h范围09,af,A~F3位16进制

7 字符串类型

C++中支持两种类型的字符串
一种是沿用C的字符串类型,使用char数组进行保存,两一种是C++风格的字符串,使用string

#include <iostream>
using namespace std;int main() {char ch1[] = "test1";cout << ch1 << endl;string ch2 = "test2";cout << ch2 << endl;return 0;
}

输出

test1
test2

8 布尔类型

表示真或者假

#include <iostream>
using namespace std;int main() {bool b1 = true;cout << "sizeof(bool) = " << sizeof(b1) << endl;bool b2 = 1;bool b3 = 0;bool b4 = 0.3;cout << "b2 = " << b2 << endl;cout << "b3 = " << b3 << endl;cout << "b4 = " << b4 << endl;return 0;
}

输出

sizeof(bool) = 1
b2 = 1
b3 = 0
b4 = 1

bool类型的cout输出为整数,这里会将true输出为1,false输出为0。同样的,数值类型可以转换成bool类型,0转换成false,非0转换成true。

http://www.lryc.cn/news/185536.html

相关文章:

  • 文本自动输入/删除的加载动画效果
  • PHP8的匿名类-PHP8知识详解
  • WebKit Inside: CSS 样式表的匹配时机
  • <HarmonyOS第一课>从简单的页面开始——闯关习题及答案
  • 视频下载plus+:一款强大的视频下载小程序
  • 扭线机控制
  • Android App启动优化之启动框架
  • zookeeper入门篇之分布式锁
  • leetcode解题思路分析(一百四十九)1297 - 1304 题
  • 你的librosa和scikit-learn打架了吗?
  • 理解自动驾驶感知技术
  • 一款简化Python自然语言处理的开源库
  • 常用Redis界面化软件
  • 电脑散热——液金散热
  • 多线程锁-synchronized字节码分析
  • SpringCloud学习笔记-Eureka的服务拉取
  • COLLABORATIVE DESIGNER FOR SOLIDWORKS® 新功能
  • AMD CPU 虚拟机安装 macos 系统的各虚拟机系统对比
  • php实战案例记录(20)时间比较
  • web中缓存的几种方式
  • Stable Diffusion生成图片
  • MySQL增删查改(进阶1)
  • RabbitMQ-发布订阅模式和路由模式
  • RabbitMQ-主题模式
  • 阅读文献小技巧
  • 简易的贪吃蛇小游戏(以后或许会更新)C++/C语言
  • 23云计算全国职业技能大赛容器云-容器编排
  • 哨兵(Sentinel-1、2)数据下载
  • 开启AI大模型时代|「Transformer论文精读」
  • 【小沐学前端】Windows下搭建WordPress(nginx1.25、PHP8.2、WordPress6.3、MySQL5.7)