总览
本篇主要讲了 c++ 的数据类型,包括整形、浮点型、字符、转义字符、字符串、布尔、输入等
数据类型的作用:给变量分配合适的内存空间
一、整型

c++
#include <iostream>
using namespace std;
int main() {
short a = 10;
int b = 20;
long c = 30;
long long d = 40;
cout << a << " " << b << " " << c << " " << d << endl;
return 0;
}
和 Java 相似的形式,同时超出最大值也会发生溢出的问题,重新从最小值开始计数
sizeof 关键字
作用:用来求出数据类型的大小
使用:sizeof(数据类型) or sizeof(数据)
c++
#include <iostream>
using namespace std;
int main() {
short a = 10;
int b = 20;
long c = 30;
long long d = 40;
// 结果为 2 4 8 8
cout << sizeof(a) << " " << sizeof(b) << " " << sizeof(c) << " " << sizeof(d) << endl;
return 0;
}
二、实型(浮点型)
作用:用来表示小数
分类: float 单精度 double 双精度

c++
#include <iostream>
using namespace std;
int main() {
// 单精度
float pi = 3.14f;
// 双精度
double p = 3.14;
// 结果为 float: 3.14159 double: 3.14159
cout << "float: " << pi << " double: " << p << endl;
return 0;
}
默认小数只显示 5 位,如果需要显示更多,需配置
科学计数法
c++
#include <iostream>
using namespace std;
int main() {
// 单精度
float f = 3e-2;
// 结果为 0.03
cout << "float: " << f << endl;
return 0;
}
三、字符型
作用:用来显示单个字符
语法: char ch = 'a';
注意一:必须用单引号,不可以是双引号
注意二:引号内必须为单个字符,不能是多个
c++
#include <iostream>
using namespace std;
int main() {
// c++ 中字符型只占一个字节
char ch = 'a';
// 并不是把字符本身存到内存单元,而是存 ASCII 码
cout << "char: " << ch << endl;
// 结果为 97
// 记一下 a=97,A=65
cout << "ASCII: " << (int)ch << endl;
return 0;
}
为什么 Java 中的 char 占用的两字符,而 c++ 只有一个字符?
如果只表示 ASCII 码的话,Java 也可以用一个,但是由于字符种类的增多,目前国际标准其实已经变为了 UTF-8,已经超出了一个字符能够表示的范围,所以 Java 采用了两字符。
c++ 也可以通过 u8'char' 来表示 utf-8 下的字符
四、转义字符
作用:用来表示一些不能显示的字符,比如空格、回车等

c++
#include <iostream>
using namespace std;
int main() {
// 换行符 \n
cout << "Hello World\n";
// 反斜杠 \
cout << "\" << endl;
// 水平制表符 \t 对齐效果
cout << "aaa\tHello World";
// 结果为 Hello World
// \
// aaa Hello World
return 0;
}
五、字符串型
作用:表示字符串
风格一:c风格字符串
c++
#include <iostream>
using namespace std;
int main() {
// c风格:char 变量名[] = 变量值;
char str[] = "abcd";
cout << str << endl;
return 0;
}
风格二:c++字符串
c++
#include <iostream>
using namespace std;
#include <string>
int main() {
// c++风格:string 变量名 = 变量值;
const string str = "abcd";
cout << str << endl;
return 0;
}
类比 Java 的话,首字母大小写不同,Java 中字符串为 String,c++ 为 string
六、布尔类型
作用:代表真或假的值
bool 类型只有两个值:
- true,表示真(本质是 1)
- flase,表示假(本质是 0)
bool 类型只占 1 字节
c++
#include <iostream>
using namespace std;
int main() {
bool flag = false;
// 输出 0
cout << flag << endl;
// 输出 1,代表只占 1 字节
cout << sizeof(flag) << endl;
return 0;
}
Java 中布尔类型为 Boolean,c++ 和 python 相同,为 bool
七、数据的输入
作用:从键盘获取数据
语法:cin >> 变量
c++
#include <iostream>
using namespace std;
int main() {
double d = 1.5;
cout << "请给变量 d 赋值:";
// 键盘输入 100
cin >> d;
// 赋值后 d = 100
cout << "赋值后 d = " << d << endl;
return 0;
}
输入应该是类比 Java 中的 System.Scanner
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();