【C++】C++基础知识(二)---数据类型

1. C++数据类型

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。也就是说当创建一个变量的时候,就会在内存中保留一些空间。

C++中在定义变量或者是常量的时候必须指定其数据类型,否则是无法给变量分配内存的。数据类型存在的意义: 给变量分配合适的内存空间。

C++中常用的几种数据类型如下表所示:

数据类型关键字
整型int
浮点型float
双浮点型double
字符型char
字符串型string
布尔型bool
无类型void

1.1 整型

C++基本整型有:

类型所占字节数表示范围
short(短整型)2-2^15 ~ 2^15-1
int(整型)4-2^31 ~ 2^31-1
long(长整型)4(windows下)、4或8(Linux下,32位系统为4,64位系统为8)-2^31 ~ 2^31-1 or -2^63 ~ 2^63-1
long long(长长整型)8-2^63 ~ 2^63-1
  • 代码演示
#include <iostream>
using namespace std;

int main() {
	//1、short(短整型) 范围:-2^15-2^15-1[2字节]
	short a = 10;
	cout << a << endl;
	cout << "short类型占用的内存空间为:" << sizeof(short) << endl;

	//2、int(整型) 范围:-2^31-2^31-1[4字节]
	int b = 20;
	cout << b << endl;
	cout << "int类型占用的内存空间为:" << sizeof(int) << endl;

	//3、long(长整型) 范围:-2^31-2^31-1[window下4字节;Linux下4字节(32位),8字节(64位]
	long c = 30;
	cout << c << endl;
	cout << "long类型占用的内存空间为:" << sizeof(long) << endl;

	//4、long long(长长整型) 范围:-2^63-2^63-1[8字节]
	long d = 40;
	cout << d << endl;
	cout << "long long类型占用的内存空间为:" << sizeof(long long) << endl;

	system("pause");
	return 0;
}

输出结果如下:
在这里插入图片描述

1.2 浮点型

作用:用于表示小数

C++浮点型有:

类型所占字节数表示范围十进制有效位数
float(单精度类型)4-2^31 ~ 2^31-17
double(双精度类型)8-2^63 ~ 2^63-115

注意: float和double浮点型数据的区别在于表示的有效数字范围不同。

  • 代码演示
#include <iostream>
using namespace std;

int main() {
	//默认情况下,输出一个小数,会显示6位有效数字。
	//1、float(一般在初始值后面加一个f,这样得到的数就是float类型的;
	//   若不加f,得到的数编辑器默认为double类型,此时需要将数据类型进行一个转换)
	float num1 = 3.1415926f;
	cout << "num1 = " << num1 << endl;
	cout << "float 类型占用的内存空间为: " << sizeof(float) << endl;

	//2、double
	double num2 = 3.1415926;
	cout << "num2 = " << num2 << endl;
	cout << "double 类型占用的内存空间为: " << sizeof(double) << endl;

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

	float f2 = 3e-2; //3e-2 = 3 * 10^-2
	cout << "f2 = " << f2 << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

1.3 字符型

字符型变量用于显示单个字符,C/C++中字符型变量只占用一个字节,字符型变量并不是把字符本身放到内存中存储,而是把对应的ASCII编码放到内存当中存储。

定义字符型变量时需注意:

  1. 定义字符型变量只能用单引号,不能用双引号
  2. 定义字符型变量时,单引号内只能有一个字符,多与一个字符就会出现警告或者是错误

常见字符及对应的ASCII编码:

字符十进制二进制十六进制
A650100 000040
B660100 000141
C670100 001042
X880101 100058
Y890101 100159
Z900101 10105A
a970110 000161
b980110 001062
c990110 001163
x1200111 100078
y1210111 100179
z1220111 10107A

注意: 对于常见字符对应的ASCII编码,都是有一定的规律的,只需要知道部分字符的编码即可推测其它字符所对应的编码。

  • 代码演示
#include <iostream>
using namespace std;

int main() {

	char ch = 'A';
	cout << "ch字符为:" << ch << endl;
	cout << "char类型占用内存: " << sizeof(ch) << " 字节" << endl;

	//char ch = "a"; //报错,1、在显示字符型变量时,用单引号将字符括起来,不能用双引号
	//char ch = 'abcde'; //报错,2、单引号内出现4个以上字符时将会报错,超过了int类型的内存4字节
	//char ch = 'abcd'; //警告,3、输出最后一个字节(一个字符)

	//将字符转换为对应的ASCII编码(a--97;A--65)
	cout << (int)ch << endl;

	//可以直接用ASCII编码给字符型变量赋值
	ch = 97;
	cout << ch << endl;

	system("pause");
	return 0;
}

输出结果为:
在这里插入图片描述

1.4 字符串型

字符串数据类型用来表示一串字符。

字符串的定义方式有:

  1. C语言风格字符串
    语法:char 变量名[ ] = “字符串值”
  2. C++引入的string类类型
    语法:string 变量名 = “字符串值”
    在使用这种方式定义字符串变量时需要包含一个如下所示的头文件
#include <string>
  • 代码演示
#include <iostream>
using namespace std;
#include <string> //使用C++风格的字符串时需要包含此头文件
//用于表示一串字符

int main() {

	//1、C语言风格字符串:char 变量名[] = "字符串值"
	char str1[] = "hello world!";
	cout << str1 << endl;

	//2、C++风格字符串:string 变量名 = "字符串值"
	string str2 = "hello world!!!";
	cout << str2 << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

1.5 布尔型

布尔数据类型代表真或假的值,占用一个字节长度。
布尔类型的变量值为非零时,返回的就是1;相反,只有当布尔类型的变量值为0时,返回的才是0。
布尔变量可以用来表示逻辑运算、关系运算以及开关变量的值。

  • 代码演示
#include <iostream>
using namespace std;

int main() {

	bool flag = true;
	bool flg = 3;
	cout << flag << "\t" << flg << endl;

	bool flag1 = false;
	bool flg1 = 0;
	cout << flag1 << "\t" << flg1 << endl;

	cout << "bool类型占用的内存空间为: " << sizeof(bool) << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

2. 转义字符

C++中常用转移字符如下:

字符形式含义
\a响铃
\n换行
\t水平制表符(跳到下一个Tab位置)
\b退格,将当前位置移到前一列
\r回车,将当前位置移到本行开头
\反斜杠字符“\”
单撇号
"双引号
\0空字符
  • 代码演示
#include <iostream>
using namespace std;

int main() {

	//转义字符:\n换行符
	cout << "helloworld!\n" << endl;

	//转义字符:\\反斜杠
	cout << "helloworld!\\" << endl;

	//转义字符:\t水平制表符。可以让输出的数据规整对齐
	cout << "111\thelloworld!" << endl;
	cout << "11111\thelloworld!" << endl;
	cout << "1111111\thelloworld!" << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

3. sizeof关键字

作用:利用sizeof关键字可以求某一特定的变量、指针、结构体、枚举、联合体等所占内存空间的大小。

  • 代码演示
#include <iostream>
using namespace std;
#include <string>

//语法:sizeof(数据类型/变量)
//short(2字节) <= int(4字节) <= long(4字节or8字节) <= long long(8字节)
//float(4字节) < double(8字节)
//char(1字节) = bool(1字节) < string(4字节)

int main() {

	//1、short(短整型)
	short num1 = 10;
	cout << "short 类型所占的内存空间为: " << sizeof(num1) << endl;

	//2、int(整型)
	int num2 = 20;
	cout << "int 类型所占的内存空间为: " << sizeof(num2) << endl;

	//3、long(长整型)
	long num3 = 30;
	cout << "long 类型所占的内存空间为: " << sizeof(num3) << endl;

	//4、long long(长长整型)
	long long num4 = 40;
	cout << "long long 类型所占的内存空间为: " << sizeof(num4) << endl;

	//5、float(单精度浮点型)
	float num5 = 3.14159f;
	cout << "float 类型所占的内存空间为: " << sizeof(num5) << endl;

	//6、double(双精度浮点型)
	double num6 = 3.1415926;
	cout << "double 类型所占的内存空间为: " << sizeof(num6) << endl;

	//7、char(字符型)
	char ch = 'a';
	cout << "char 类型所占的内存空间为: " << sizeof(ch) << endl;

	//8、string(字符串类类型)
	string str = "abcde";
	cout << "string 类型所占的内存空间为: " << sizeof(str) << endl;

	//9、bool(布尔类型)
	bool FLAG = true;
	cout << "bool 类型所占的内存空间为: " << sizeof(FLAG) << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

注意:
字符串string:
string在C++中属于类类型,不是基本数据类型,类不能计算其在内存中的大小,非要用>sizeof(string)计算的话,一般算出来的结果为sizeof(string) = 4byte,若字符串中内容较多时,算出来的内存就不>是其真实大小。

4. 数据输入

C++中cin关键字用于从键盘来获取数据。其使用方式为:cin >> 变量名

  • 代码演示
#include <iostream>
using namespace std;
#include <string>

int main() {

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

	double d = 10.1;
	cout << "请输入实型变量: " << endl;
	cin >> d;
	cout << "d = " << d << endl;

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

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

	bool b = 0;
	cout << "请输入bool型变量: " << endl;
	cin >> b;
	cout << "b = " << b << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值