Day 002

二、数据类型

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

2.1 整型

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

C++中能够表示整型有以下几种方式,区别在于所占同

  • short(短整型):2字节 (-32768~32767)
  • int(整型):4字节 (-2147483648~2147483647)
  • long(长整型):4字节(-2147483648~2147483647)
  • long long(长长整型):8字节

2.2 sizeof关键字

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

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

示例:可以统计出各种数据类型的字节长度是多少

#include<iostream>
using namespace std;
int main(){
	//整型:short:2  int:4  long:4   long long: 8
	//可以利用sizeof求出数据类型占用内存大小
	//语法:sizeof(数据类型 / 变量) 如:
	short mun1 = 10;
	cout<< "short占用内存空间为:" <<sizeof(short) << endl;
	int mun2 = 10;
	cout<< "int占用内存空间为:" <<sizeof(int) << endl;
	long mun3 = 10;
	cout<< "long占用内存空间为:" <<sizeof(long) << endl;
	long long mun4 = 10;
	cout<< "long long占用内存空间为:" <<sizeof(long long) << endl;
	return 0;
}

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

2.3 实型(浮点型)

作用:用于表示小数

浮点型变量分为两种:

  • 单精度float
  • 双精度double

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

#include<iostream>
using namespace std;
int main() {
	//单精度 float
	//双精度 double
	float f1 = 3.14f; //习惯单精度的数字后加f。
	cout << "f1=" << f1 << endl;
	double d1 = 3.14;//双精度不用数字后带字母。
	cout << "d1=" << d1 << endl;
	//可以用sizeof计算出两个精度的字节长度
	cout << "float占用内存空间为:" << sizeof(float) << endl;//4字节
	cout << "double占用内存空间为:" << sizeof(double) << endl;//8字节
	//科学计数法表示及计算方法
	float f2 = 3e2;//3e2表示3*10^2;
	cout << "f2= " << f2 << endl;
	float f3 = 3e-2;//3e-2表示3*0.1^2;
	cout << "f3= " << f3 << endl;
	return 0;
}

2.4 字符型

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

语法: char ch = 'a';

  • 注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号
  • 注意2:单引号内只能有一个字符,不可以是字符串
    • c和c++中字符型变量只占用1字节。
    • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCLL编码放入到存储单元。

示例

#include<iostream>
using namespace std;
int main() {
	//1. 字符型变量创建方式
	char ch = 'a';
	cout << ch << endl;
	//2. 字符型变量所占内存大小
	cout << "char字符型变量所占内存:" << sizeof(char) << endl;//1字节
	//3. 字符型变量常见错误
	//char ch2 = "b";//创建字符型变量时,要用单引号
	//char ch2 = 'abcdef';//创建字符型变量时,单引号内只能有一个字符
	//4. 字符型变量对应ASCLL编码
	cout << (int)ch << endl;//(int)是强制转为十进制 a为97 b为98 A为65 B为66
	return 0;
}

2.5 转义字符

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

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

#include<iostream>
using namespace std;
int main() {
	//换行符 \n
	cout << "hello world\n";
	//反斜扛 \\
	cout<<"\\"<<endl;
	//水平制表符 \t  作用可以整齐输出字符
	cout << "aaa\thello world" << endl;//水平制表符一共占8个字符。aaa和hello之间空5格,aaa占了3格。
	cout << "aaaaa\thello world" << endl;
	cout << "aa\thello world" << endl;
	cout << "aaaa\thello world" << endl;
	return 0;
}

2.6 字符串型

作用:用于表示一串字符

两种风格

  1. C风格字符串char 变量名[] = "字符串值"

  2. C++风格字符串: string 变量名 = "字符串值"

    示例:

#include<iostream>
#include<string> //用C++风格字符串时,要包含这个头文件。
using namespace std;
int main() {
	//1. C风格的字符串 注意:C风格的字符串要用双引号括下来
	char str1[] = "hello world";//和字符型的区别是多了个[];还有是双引号。
	cout << str1 << endl;
	//2. C++风格的字符串
	//包含一个头文件: #include<string> 否则报错。
	string str = "hello world";
	cout << str << endl;
	return 0;
}

2.7 布尔类型 bool

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

bool类型只有两个值:

  • true ---真(本质是1)
  • ralse --- 假(本质是0)

bool类型占1个字节大小

#include<iostream>
using namespace std;
int main() {
	//1. 创建bool数据类型
	bool flag = true;//true代表真
	cout << flag << endl;

	flag = false;//false代表假
	cout << flag << endl;
	//本质上 1代表真 0代表假

	//2. 查看bool类型所占内存空间
	cout << "bool类型所占内存空间: " << sizeof(bool) << endl;
	
	return 0;
}

2.8 数据的输入

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

关键字:cin

语法: cin >> 变量

#include<iostream>
#include<string> //C++风格字符串的头文件,否则报错。
using namespace std;
int main() {
	//1. 整型
	int a = 0;
	cout << "请给整型变量a赋值: " << endl;
	cin >> a;
	cout << "整型变量a=  " << a << endl;
	//2. 浮点型
	float f = 3.14f;
	cout << "请给浮点型变量a赋值: " << endl;
	cin >> f;
	cout << "浮点型变量f=  " << f << endl;
	//3. 字符型
	char ch = 'a';
	cout << "请给字符型变量ch赋值: " << endl;
	cin >> ch;
	cout << "字符型变量ch=  " << ch << endl;
	//4. 字符串型
	string str = "hello";
	cout << "请给字符串型变量str赋值: " << endl;
	cin >> str;
	cout << "字符串型变量str=  " << str << endl;
	//5. 布尔类型
	bool flag = false; //非0的值,都代表真。
	cout << "请给布尔型变量flag赋值: " << endl;
	cin >> flag;
	cout << "布尔型变量flag=  " << flag << endl;
	return 0;
}
上一篇:002.Redis与Mysql的联动


下一篇:002.TCP三次握手存在一些问题