数据类型
C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存
整型
作用:整型变量表示的是整数类型的数据
C++中能够表示整型的类型有以下几种,区别在于所占用内存空间不同
| 数据类型 | 占用空间 | 取值范围 |
|---|---|---|
| short(短整型) | 2字节 | (-2^15~2^15-1) |
| int(整型) | 4字节 | (-2^31~2^31-1) |
| long(长整型) | Windows为4字节,Linux32位为4字节,64位为8字节 | (-2^31~2^31-1) |
| long long(长长整型) | 8字节 | (-2^63~2^63-1) |
sizeof 关键字
作用:利用 sizeof 关键字可以统计数据类型所占内存大小
使用方式
xxxxxxxxxx
sizeof(数据类型/变量)
例如
xxxxxxxxxx
using namespace std;
int main() {
short a = 10;
int b = 10;
long c = 10;
long long d = 10;
cout << "short的占用为: " << sizeof(a) << endl;
cout << "int的占用为: " << sizeof(b) << endl;
cout << "long的占用为: " << sizeof(c) << endl;
cout << "long long的占用为: " << sizeof(d) << endl;
system("pause");
return 0;
}
运行

实型(浮点型)
作用:用于表示小数
浮点型变量分为两种:
-
单精度(float)
-
双精度(double)
两者的区别在于表示的有效数字范围不同
数据类型
占用空间
有效数字范围
float
4字节
7位有效数字
double
8字节
15~16位有效数字
例如
xxxxxxxxxx
using namespace std;
int main() {
float a = 3.14159265358f;
//注意:当要给 float 类型赋值时,需要在数值后方添加 f 以确定为 float 类型,否则默认会添加为 double 类型再转为 float
double b = 3.14159265358;
cout << "float为: " << a << endl;
cout << "double为: " << b << endl;
system("pause");
return 0;
}
运行

无论是 float 还是 double 默认情况下都只会输出 6位 有效数字
统计占用的空间
例如
xxxxxxxxxx
using namespace std;
int main() {
float a = 3.14159265358f;
//注意:当要给 float 类型赋值时,需要在数值后方添加 f 以确定为 float 类型,否则默认会添加为 double 类型再转为 float
double b = 3.14159265358;
cout << "float占用为:" << sizeof(a) << endl;
cout << "double占用为:" << sizeof(b) << endl;
system("pause");
return 0;
}
运行

科学计数法
例如
xxxxxxxxxx
#include <iostream>
using namespace std;
int main() {
float a = 3e2;
float b = 3e-2;
cout << "3e2为:" << a << endl;
cout << "3e-2为:" << b << endl;
system("pause");
return 0;
}
当 e 后方为正数时,代表 e前方的数 * 10 ^ e后方的数字
当 e 后方为负数时,代表 e前方的数 * -0.1 ^ e后方的数字
运行后

字符型
作用:字符型变量用于显示单个字符
注意1:再显示字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号只能有一个字符,不可以是字符串
-
C和C++中字符型变量只占用1个字符 -
字符型变量并不是把字符本身放到内存中存储,而是将对应的
ASCII编码放入到存储单元
使用方式
xxxxxxxxxx
char 变量名 = '字符';
例如
xxxxxxxxxx
using namespace std;
int main() {
//1、字符型变量创建
char a = 'a';
cout << a << endl;
//2、字符型变量所占内存大小
cout << "char的大小为:" << sizeof(a) << endl;
//3、字符型变量常见错误
/*
char ch1 = "a";
创建字符型变量时需要使用单引号 ''
char ch1 = 'aaa';
创建字符型变量时,单引号内只能有一个字符
*/
//3、字符型变量对应ASCII编码
//a 对应的编码为 97
//A 对应的编码为 65
cout << (int)a << endl;
system("pause");
return 0;
}
运行

ASCII 编码
ASCII值
控制字符
ASCII值
控制字符
ASCII值
控制字符
ASCII值
控制字符
0
NUT
32
(space)
64
@
96
、
1
SOH
33
!
65
A
97
a
2
STX
34
"
66
B
98
b
3
ETX
35
#
67
C
99
c
4
EOT
36
$
68
D
100
d
5
ENQ
37
%
69
E
101
e
6
ACK
38
&
70
F
102
f
7
BEL
39
,
71
G
103
g
8
BS
40
(
72
H
104
h
9
HT
41
)
73
I
105
i
10
LF
42
*
74
J
106
j
11
VT
43
+
75
K
107
k
12
FF
44
,
76
L
108
l
13
CR
45
–
77
M
109
m
14
SO
46
.
78
N
110
n
15
SI
47
/
79
O
111
o
16
DLE
48
0
80
P
112
p
17
DCI
49
1
81
Q
113
q
18
DC2
50
2
82
R
114
r
19
DC3
51
3
83
S
115
s
20
DC4
52
4
84
T
116
t
21
NAK
53
5
85
U
117
u
22
SYN
54
6
86
V
118
v
23
TB
55
7
87
W
119
w
24
CAN
56
8
88
X
120
x
25
EM
57
9
89
Y
121
y
26
SUB
58
:
90
Z
122
z
27
ESC
59
;
91
[
123
{
28
FS
60
<
92
\
124
|
29
GS
61
=
93
]
125
}
30
RS
62
>
94
^
126
`
31
US
63
?
95
_
127
DEL
ASCII 码大致由以下两部分组成:
-
ASCII 非打印控制字符:ASCII 表上的数字
0-31分配给了控制字符,用于控制像打印机等一些外围设备 -
ASCII 打印字符:数字
32-126分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。
转义符
| 转义字符 | 意义 | ASCII码值(十进制) |
|---|---|---|
| \a | 响铃(BEL) | 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 | 空字符(NULL) | 000 |
| \ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
| \xhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
例如
xxxxxxxxxx
using namespace std;
int main() {
// \n 换行
cout << "换行" << endl;
cout << "aaa" << '\n' << endl;
// \\ 反斜杠
cout << "反斜杠" << endl;
cout << "aaa\\" << "bbbb" << '\n' << endl;
// \t 制表
cout << "制表" << endl;
cout << "aaa" << '\t' << "bbb" << endl;
cout << "aa" << '\t' << "bbb" << endl;
cout << "aaaaaa" << '\t' << "bbb" << endl;
cout << "ab" << '\t' << "bbb" << endl;
system("pause");
return 0;
}
运行

字符串
C语言风格字符串
注意1:char 字符串名 []
注意2:等号后面要用双引号
使用方式
xxxxxxxxxx
char str [] = "Hello World";
例如
xxxxxxxxxx
using namespace std;
int main() {
// C 语言风格
char str[] = "Hello World C";
cout << str << endl;
system("pause");
return 0;
}
运行

C++语言风格字符串
注意1:包含一个头文件 #include
注意2:等号后面要用双引号
使用方式
xxxxxxxxxx
string str = "Hello World";
例如
xxxxxxxxxx
using namespace std;
int main() {
// C++ 语言风格
string str = "Hello World C++";
cout << str << endl;
system("pause");
return 0;
}
运行

布尔类型
作用:布尔数据类型代表真或假的值
注意:bool 类型只有两个值
注意2:bool 类型占 1 个字节大小
-
true — 真 (本质是1)
-
false — 假 (本质是0)
使用方法
xxxxxxxxxx
bool 变量名 = 变量值;
例如
xxxxxxxxxx
using namespace std;
int main() {
//1、创建 bool 数据类型
bool flag = true;
cout << "第一次输出 bool 的值为:" << flag << '\n' << endl;
flag = false;
cout << "第二次输出 bool 的值为:" << flag << '\n' << endl;
//2、查看 bool 数据类型占用的内存空间
cout << "bool 占用的内存空间为:" << sizeof(flag) << endl;
system("pause");
return 0;
}
运行

数据的输入
作用:用于从键盘获取数据
关键字:cin
使用方法
xxxxxxxxxx
cin >> 变量
例如
xxxxxxxxxx
using namespace std;
int main() {
//整型输入
int num = 0;
cout << "整型值为:" << num << endl;
cin >> num;
cout << "整型值为:" << num << '\n' << endl;
//浮点型输入
float flo = 0;
cout << "浮点型值为:" << flo << endl;
cin >> flo;
cout << "整型值为:" << flo << '\n' << endl;
//字符型输入
char cha = 'a';
cout << "字符型值为:" << cha << endl;
cin >> cha;
cout << "字符型值为:" << cha << '\n' << endl;
//字符串型输入
char str [] = "";
cout << "字符串型值为:" << str << endl;
cin >> str;
cout << "字符串型值为:" << str << '\n' << endl;
//布尔型输入
bool boo = 0;
cout << "布尔型值为:" << boo << endl;
cin >> str; //bool 类型 只要是非0的值,那么都为 true
cout << "布尔型值为:" << boo << '\n' << endl;
system("pause");
return 0;
}
运行
