02 数据类型

C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存

数据类型存在意义:给变量分配合适的内存空间

02 数据类型

2.1 整型

作用:整型变量表示的是整数类型的数据

C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同

数据类型占用空间取值范围
short(短整型)2字节(-2^15 ~ 2^15-1) =
-32768 ~ 32767
int(整型)4字节(-2^31 ~ 2^31-1)
-2,147,483,648 – 2,147,483,647
最常用 
long(长整形)Windows为4字节,Linux为4字节(32位),8字节(64位)(-2^31 ~ 2^31-1)
long long(长长整形)8字节(-2^63 ~ 2^63-1)
02 数据类型
#include <iostream>
using namespace std;

int main()
{
	// 整型
	// 1、短整型
	short num1 = 10;

	// 2、整型
	int num2 = 10;

	// 3、长整型
	long num3 = 10;

	// 4、长长整型
	long long num4 = 10;

	cout << "num1 = " << num1 << endl;
	cout << "num2 = " << num2 << endl;
	cout << "num3 = " << num3 << endl;
	cout << "num4 = " << num4 << endl;


	system("pause");
	return 0;
}

显示结果:

02 数据类型

Tips:

02 数据类型

2.2 sizeof关键字

作用:利用sizeof关键字可以统计数据类型所占内存大小

语法: sizeof( 数据类型 / 变量)

示例:

int main() {

	cout << "short 类型所占内存空间为: " << sizeof(short) << endl;

	cout << "int 类型所占内存空间为: " << sizeof(int) << endl;

	cout << "long 类型所占内存空间为: " << sizeof(long) << endl;

	cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;

	system("pause");

	return 0;
}

输出结果:

02 数据类型
#include <iostream>
using namespace std;

int main()
{
	// 整型: short(2) int(4) long(4) long long(8)
	// 可以利用sizeof求出数据类型占用内存大小
	// 语法:sizeof(数据类型/变量)
	short num1 = 10;
	cout << "short 占用内存空间为" << sizeof(num1) << endl;

	int num2 = 10;
	cout << "int 占用内存空间为" << sizeof(num2) << endl;

	long num3 = 10;
	cout << "long 占用内存空间为" << sizeof(num3) << endl;

	long long num4 = 10;
	cout << "long long 占用内存空间为" << sizeof(num4) << endl;

	system("pause");
	return 0;
}

输出结果:

02 数据类型

整型结论short < int <= long <= long long

2.3 实型(浮点型)

作用:用于表示小数

浮点型变量分为两种:

  1. 单精度float
  2. 双精度double

两者的区别在于表示的有效数字范围不同。

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

示例1:科学计数法

int main() {

	float f1 = 3.14f;
	double d1 = 3.14;

	cout << f1 << endl;
	cout << d1<< endl;

	cout << "float  sizeof = " << sizeof(f1) << endl;
	cout << "double sizeof = " << sizeof(d1) << endl;

	//科学计数法
	float f2 = 3e2; // 3 * 10 ^ 2 
	cout << "f2 = " << f2 << endl;

	float f3 = 3e-2;  // 3 * 0.1 ^ 2
	cout << "f3 = " << f3 << endl;

	system("pause");

	return 0;
}

示例2:

#include <iostream>
using namespace std;

int main()
{
	// 1、单精度 float
	float f1 = 3.1415926f; // 写一个f代表float; 如果不写f,则会认为是double,如果是float去接收它,这会转换成单精度。
	cout << "f1 = " << f1 << endl;

	// 2、双精度 double
	// C++中,输出一个小数,会显示出6位有效数字
	double d1 = 3.1415926;
	cout << "d1 = " << d1 << endl;

	// 统计float和double占用的内存空间大小
	cout << "float占用的内存空间为" << sizeof(float) << endl;

	cout << "double占用的内存空间为" << sizeof(double) << endl;


	system("pause");
	return 0;
}

输出结果:

02 数据类型

补充知识点 – float\double输出其他的有效长度:

方法一:

#include <iostream>
#include <iomanip>

int main() {
    double num = 3.14159265358979323846;
    
    // 输出8位小数(固定小数点后的位数)
    std::cout << std::fixed << std::setprecision(8) << num << std::endl;
    // 输出:3.14159265
}

方法二:

#include <iostream>
#include <iomanip>

int main() {
    double num = 3.14159265358979323846;
    
    // 输出8位有效数字(自动选择合适的格式)
    std::cout << std::setprecision(8) << num << std::endl;
    // 输出:3.1415927(四舍五入保留8位有效数字)
}

方法三:

#include <iostream>
#include <iomanip>

int main() {
    double num = 31415926.5358979323846;
    
    // 科学计数法输出,保留8位小数
    std::cout << std::scientific << std::setprecision(8) << num << std::endl;
    // 输出:3.14159265e+07
}

按需选择输出方式

需求代码示例输出示例(以 π 为例)
固定 8 位小数std::fixed + setprecision(8)3.14159265
8 位有效数字setprecision(8)3.1415927
科学计数法 + 8 位小数std::scientific + setprecision(8)3.14159265e+00

2.4 字符型

作用:字符型变量用于显示单个字符

语法:char ch = 'a';

注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号

注意2:单引号内只能有一个字符,不可以是字符串

  • C和C++中字符型变量只占用1个字节
  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
02 数据类型

示例:

#include <iostream>
using namespace std;

int main()
{
	// 1、字符型变量创建方式
	char ch = 'a';
	cout << ch << endl;

	// 2、字符型变量所占的内存大小
	cout << "char 字符型变量所占内存:" << sizeof(char) << endl;

	// 3、字符型变量常见错误
	//char ch1 = "b"; // 创建字符型变量时候,要用单引号
	//char ch2 = 'abcdef'; // 创建字符型变量的时候,单引号只能用一个字符

	// 4、字符型变量对应ASCII编码
	// a - 97  
	// A - 65
	cout << (int)ch << endl;

	system("pause");
	return 0;
}

输出结果:

02 数据类型

ASCII码表格:

ASCII控制字符ASCII字符ASCII字符ASCII字符
0NUT32(space)64@96
1SOH33!65A97a
2STX3466B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39,71G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR4577M109m
14SO46.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 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。
  • ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。

2.5 转义字符

作用:用于表示一些不能显示出来的ASCII字符

现阶段我们常用的转义字符有:\n \\ \t

转义字符含义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进制

示例:

#include <iostream>
using namespace std;

int main() 
{
	cout << "\\" << endl;
	cout << "\tHello" << endl;
	cout << "aaaa\tHello" << endl;
	cout << "aa\tHello" << endl;
	cout << "aaaaaa\tHello" << endl;
	cout << "\n" << endl;

	system("pause");

	return 0;
}

输出结果:

02 数据类型
cout << "Name\tAge\tCity" << endl;
cout << "Alice\t25\tNew York" << endl;
cout << "Bob\t30\tLos Angeles" << endl;

输出结果:

Name    Age     City
Alice   25      New York
Bob     30      Los Angeles

2.6 字符串型

作用:用于表示一串字符

两种风格

  1. C风格字符串char 变量名[] = "字符串值"
  2. 示例:
int main() {

	char str1[] = "hello world";
	cout << str1 << endl;
    
	system("pause");

	return 0;
}

注意事项 char 字符串名 []
注意事项2 等号后面,要用双引号 包括起来字符串

  1. C++风格字符串string 变量名 = "字符串值"
  2. 示例:
int main() {

	string str = "hello world";
	cout << str << endl;
	
	system("pause");

	return 0;
}

注意:C++风格字符串,需要加入头文件#include<string>

2.7 布尔类型 bool

作用:布尔数据类型代表真或假的值

bool类型只有两个值:

  • true — 真(本质是1)
  • false — 假(本质是0)

bool类型占1个字节大小

示例:

int main() {

	bool flag = true;
	cout << flag << endl; // 1

	flag = false;
	cout << flag << endl; // 0

	cout << "size of bool = " << sizeof(bool) << endl; //1
	
	system("pause");

	return 0;
}

在 C++ 中,当你直接输出bool类型的变量时,默认会显示为整数1(代表true)或0(代表false),而不是字符串"true""false"。这是因为 C++ 的bool类型在底层被表示为整数,true对应值为1false对应值为0

原因分析:

  1. 默认输出格式cout在输出bool类型时,会将其转换为整数显示。这是 C++ 标准库的默认行为。
  2. 历史兼容性:C++ 的bool类型是后来才加入的(早期 C++ 直接使用整数 0 和非零值表示真假),为了兼容旧代码,默认保持了数值输出的方式。

使用boolalpha操纵符

#include <iostream>
using namespace std;

int main() {
    bool flag = true;
    cout << boolalpha; // 启用布尔值的文本输出模式
    cout << flag << endl; // 输出 "true"
    cout << !flag << endl; // 输出 "false"
    return 0;
}

2.8 数据的输入

作用:用于从键盘获取数据

关键字:cin

语法: cin >> 变量

示例:

int main(){

	//整型输入
	int a = 0;
	cout << "请输入整型变量:" << endl;
	cin >> a;
	cout << a << endl;

	//浮点型输入
	double d = 0;
	cout << "请输入浮点型变量:" << endl;
	cin >> d;
	cout << d << endl;

	//字符型输入
	char ch = 0;
	cout << "请输入字符型变量:" << endl;
	cin >> ch;
	cout << ch << endl;

	//字符串型输入
	string str;
	cout << "请输入字符串型变量:" << endl;
	cin >> str;
	cout << str << endl;

	//布尔类型输入
	bool flag = true;
	cout << "请输入布尔型变量:" << endl;
	cin >> flag;
	cout << flag << endl;
	system("pause");
	return EXIT_SUCCESS;
}

本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客

(1)
何大锤的头像何大锤管理团队

相关推荐

  • 04 程序流程结构

    C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构 循环结构:依据条件是否满足,循环多次执行某段代码 顺序结构:程序按顺序执行,不发生跳转 选择结构:依据条件是否满足,有选择的执行相应功能 4.1 选择结构 4.1.1 if语句 作用:执行满足条件的语句 if语句的三种形式 示例: 注意:if条件表达式后不要加分号 示例: 示例: 嵌套if…

    2天前
    300
  • 03 运算符

    作用:用于执行代码的运算 本章我们主要讲解以下几类运算符: 运算符类型 作用 算术运算符 用于处理四则运算 赋值运算符 用于将表达式的值赋给变量 比较运算符 用于表达式的比较,并返回一个真值或假值 逻辑运算符 用于根据表达式的值返回真值或假值 3.1 算术运算符 作用:用于处理四则运算 算术运算符包括以下符号: 运算符 术语 示例 结果 + 正号 +3 3 …

    3天前
    200
  • 01 C++初识

    1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选择添加->新建项 给C++文件起个名称,然后点击添加即可。 1.1.3 编写代码 1.1.4 运行程序 1.2 注释 作用:在代码中加一些说明和解释,方便自…

    2025年6月5日
    200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

2211932694

在线咨询: QQ交谈

邮件:hdcblog1999@163.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
网站建设中ing......