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

C++数据类型(整型、浮点型、字符型、布尔型)

数据类型:给变量分配合适的内存空间,避免浪费内存资源。

目录

整型

浮点型

字符型

布尔型

拓展

1.sizeof 关键字

2.转义字符

3.字符串型

4.数据的输入


整型

定义:表示整数类型的数据

C++中有四种表示整型的类型,区别在于所占内存空间可取值的范围不同

数据类型占用空间取值范围
短整型 short2字节-2^15~2^15-1
整型 int4字节-2^31~2^31-1
长整型 longWindows:4字节,Linux(32位)4字节,(64位)8字节-2^31~2^31-1
长长整型 long long8字节-2^63~2^63-1

不同整型占用的内存空间比较:short < int <= long <= long long,常用int

浮点型

定义:表示小数类型的数据

浮点型变量分为两种,区别在于表示的有效数字范围不同

数据类型占用空间有效数字范围
单精度 float4字节7位有效数字
双精度 double8字节15~16位有效数字

注:

1.有效数字包括整数部分和小数部分

2.C++输出多位小数时默认会显示6位有效数字,需进行额外配置以完整显示全部有效数字

3.float类型表示小数时,在数字末尾显式地使用字母 f 表示单精度,否则编译器会默认将小数视作双精度浮点型(double),再进行类型转换(由double型转换为float型)

字符型

定义:表示单个字符

将对应的ASCII编码存放至内存,而不是字符本身,占用1个字节

数据类型占用空间取值范围
字符型 char1字节ASCII值范围(0-127)

注:

1.使用单引号表示字符,且单引号内有且仅有1个字符,不可以是字符串

2.使用 (int) ch 查询字符对应的ASCII编码,例如:'a’对应97,'A’对应65

ASCII码表

ASCII值控制字符ASCII值字符ASCII值字符ASCII值字符
0NUT32(space)64@96
1SOH33!65A97a
2STX34"66B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39,71G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR45-77M109m
14SQ46.78N110n
15SI47/79O111o
16DLE48080P112p
17DCI49181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23TB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92/124|
29GS61=93]125}
30RS62>94^126`
31US63?95_127DEL

ASCII 码的大致组成部分:

非打印控制字符:ASCII 表的数字 0-31 分配给控制字符,用于控制如打印机等外围设备

打印字符:ASCII 表的数字 32-127 分配给键盘上的字符

布尔型

定义:表示真或假的值

bool类型占1个字节大小,且只有两个值:

1.true或者任意非0值:真(本质是1)

2.false或者0:假(本质是0)

数据类型占用空间取值范围
布尔型 bool1字节0或1

拓展

1.sizeof 关键字

作用:求各种数据类型所占用的内存大小

语法:sizeof(变量名)或者sizeof(数据类型)

#include <iostream>
using namespace std;

int main(){
	
  // 使用sizeof()求出各种数据类型所占用的内存大小:sizeof(变量名)或者sizeof(数据类型)

  //整型 
  int a = 10; 
  cout << "a占用空间为:"<< sizeof(a) << endl << endl;

  cout << "short占用空间为:"<< sizeof(short) << endl << endl;
  cout << "int占用空间为:"<< sizeof(int) << endl << endl;
  cout << "long占用空间为:"<< sizeof(long) << endl << endl;
  cout << "long long占用空间为:"<< sizeof(long long) << endl << endl;

  //浮点型
  float f = 3.14f;
  cout << "f占用的内存大小:" << sizeof(f) << endl << endl;
  cout << "float 类型占用的内存大小:" << sizeof(float) << endl << endl;

  double d = 3.14;
  cout << "d占用的内存大小:" << sizeof(d) << endl << endl;
  cout << "double 类型占用的内存大小:" << sizeof(double) << endl << endl;
  
  //字符型
  char c = 'A';
  cout << "c占用的内存大小:" << sizeof(a) << endl << endl;
  cout << "char字符型变量占用的内存大小:" << sizeof(char) << endl << endl;
  
  //布尔型
  bool b = true;
  cout << "b占用的内存大小:" << sizeof(b) << endl << endl;
  cout << "bool类型占用的内存大小:" << sizeof(bool) << endl << endl;
   
  return 0;
}

输出结果如图:

2.转义字符

定义:表示一些特殊的无法直接显示的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~7 3位8进制
\xhh16进制转义字符,h范围0-9,a-f,A~F 3位16进制

3.字符串型

C语言:char 变量名[ ] = " 字符串值 " ; 

C++:string 变量名 = " 字符串值 " ;

注:

(1)使用C风格字符串时,需使用双引号将字符串值括起来

(2)使用C++风格字符串时,需包含头文件 #include <string>

#include <iostream>
#include <string>
using namespace std;

int main() {
	//C风格字符串
	char cStr[] = "hello c str";
	cout << cStr << endl;

	//C++风格字符串
	string cppStr = "hello cpp str";
	cout << cppStr << endl;
	return 0;
}

输出结果如图:

4.数据的输入

作用:从键盘获取数据,并复制给cin对应的变量

语法:cin >> 变量

http://www.dtcms.com/a/109100.html

相关文章:

  • 办公设备管理系统(springboot+ssm+jsp+maven)
  • 面向教育领域的实时更新RAG系统:核心模块设计与技术选型实践指南
  • C++:算术运算符
  • 统计子矩阵
  • Parasoft C++Test软件单元测试_操作指南
  • 从内核到应用层:Linux缓冲机制与语言缓冲区的协同解析
  • 【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
  • ES中经纬度查询geo_point
  • 图像处理之Homography matrix(单应性矩阵)
  • 2025年4月3日(模数转换器)
  • 【Centos】centos7内核升级-亲测有效
  • 【动态规划】P8638 [蓝桥杯 2016 省 A] 密码脱落
  • 树莓派 5 换清华源
  • 【C语言】C语言文件操作指南
  • 质检LIMS系统在垃圾处理厂的应用 垃圾处理质检的三重挑战与LIMS破局之道
  • 管理系统如何帮助你节省时间和成本?
  • 移动端六大语言速记:第7部分 - 文件与输入输出(I/O)
  • 【网络流 图论建模 最大权闭合子图】 [六省联考 2017] 寿司餐厅
  • 二十八、城市建成区提取——领域分析法
  • vulnhub-DC-2通关攻略
  • 从零构建大语言模型全栈开发指南:第五部分:行业应用与前沿探索-5.2.1模型偏见与安全对齐(Red Teaming实践)
  • 新能源汽车测试中的信号调理模块:从原理到实战应用
  • python--文件夹的压缩和解压缩(zipfile/pyzipper)
  • Day15——路由
  • 飞浆PaddlePaddle 猫狗数据大战
  • Pyinstaller 打包flask_socketio为exe程序后出现:ValueError: Invalid async_mode specified
  • 学习threejs,使用Texture纹理贴图,测试repeat重复纹理贴图
  • ngx_regex_init
  • C语言基础要素(019):输出ASCII码表
  • 李沐 X 动手学深度学习--第九章 现代循环神经网络