CH02_数据类型


数据类型

整型

描述:整型变量表示的是整型类型的数据,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

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;


//入口函数
int main() {

//短整型范围:-32768 ~ 32767
short num1 = 10;
short num1_2 = 32769;//实际为-32767(超出范围自动回环)

//整型范围:-2,147,483,648 ~ 2,147,483,647
int num2 = 10;

//长整型范围:-2,147,483,648 ~ 2,147,483,647
long num3 = 10;

//长长整型范围:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
long long num4 = 10;

cout << "num1_2:" << num1_2 << endl;

system("pause");

return 0;
}

sizeof关键字

作用:统计数据类型所占空间大小

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

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;


//入口函数
int main() {

int num = 10;

cout << "short:" << sizeof(short) << endl;
cout << "num:" << sizeof(num) << endl;
cout << "int:" << sizeof(int) << endl;
cout << "long:" << sizeof(long) << endl;
cout << "long long:" << sizeof(long long) << endl;


system("pause");

return 0;
}

实型(浮点型)

作用:用于表示小数。

浮点型变量分为两种:

1.单精度浮点型float

2.双精度浮点型double

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

数据类型 占用空间 有效数字范围
float 4字节 7位有效数字
double 8字节 15~16位有效数字

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
using namespace std;


//入口函数
int main() {

//默认情况,显示一个小数,会显示6位有效数字
float num1 = 3.1415926f;
float num1_2 = 314.15926f;
double num2 = 3.123456789123456789;
double num2_2 = 312.3456789123456789;

//输出结果:3.14159
cout << "num1:" << num1 << endl;
//输出结果:314.159
cout << "num1_2:" << num1_2 << endl;

//输出结果:3.12346
cout << "num2:" << num2 << endl;
//输出结果:312.346
cout << "num2_2:" << num2_2 << endl;

//科学计数法
float f1 = 3e2; //3*10^2
float f2 = 3e-2;//3*0.1^2

cout << "f1:" << f1 << endl; //300
cout << "f2:" << f2 << endl; //0.03

system("pause");

return 0;
}

字符型

作用:用于存储单个字符

语法:char sex=’A’;

特点:

1.C和C++中的字符型变量只占用一个字节

2.字符型变量并不是把字符本身放在内存中存储,而是将对应的ASCII编码放入存储单元。

3.一个汉字占两个字节,无法用char型存储

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;

int main() {

//字符型变量的定义
char ch = 'A';
cout << ch << endl;

//字符型变量所占内存大小
cout << "占用空间:" << sizeof(char) << endl;

//字符型变量对应的ASCII码
cout << "ASCII:"<<(int)ch << endl;

//常见错误
//char a = "a";
//char b = 'abc';

system("pause");
return 0;
}

转义字符

作用:用于表示一些不能显示出来的ASSCI码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;

int main() {

// \n:换行
cout << "hello\nworld" <<endl;

// \t:制表符
cout << "hello\tc++" << endl;

// \\:反斜杠
cout << "hello\\c" << endl;

system("pause");
return 0;
}

字符串型

作用:用于表示一串字符

两种风格:

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

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

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;

int main() {

//C风格字符串
char str1[] = "hello c";
cout << "str1:" << str1 << endl;

//C++风格字符串
string str2 = "hello c++";
cout << "str2:" << str2 << endl;

system("pause");
return 0;
}

布尔型

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

bool类型只有两个值:

true:真(本质是1)

false:假 (本质是0)

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;

int main() {

bool flag = false;

//输出结果:0
cout << "flag:" << flag << endl;

//占用空间:1
cout << "占用空间:" << sizeof(flag) << endl;

system("pause");

return 0;
}

数据的输入

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

关键字:cin

语法:cin >> 变量

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
using namespace std;

int main() {

//1.整型输入
int a = 0;
cout << "请输入一个整数:" << endl;
cin >> a;
cout << "输入的整数为:" << a << endl;

//2.浮点型输入
double b = 0;
cout << "请输入一个小数:" << endl;
cin >> b;
cout << "输入的小数为:" << b << endl;

//3.字符型输入
char c = ' ';
cout << "请输入一个字符:" << endl;
cin >> c;
cout << "输入的字符为:" << c << endl;

//4.字符串输入
string d = "";
cout << "请输入一个字符串:" << endl;
cin >> d;
cout << "输入的整数为:" << d << endl;

//bool型输入
bool e = false;
cout << "请输入一个bool型数据:" << endl;
cin >> e;//赋值时:1为true,0为false,默认为false
cout << "输入的bool型值为:" << e << endl;

system("pause");

return 0;
}