C++ 数据类型
数据类型
整形
在C++中,整形以 int 为主,但还有别的表现形式,如下表
数据类型 | 占用空间 | 取值范围 |
---|---|---|
int(整型) | 4字节 | (-2^31 ~ 2^31-1) |
short(短整型) | 2字节 | (-2^15 ~ 2^15-1) |
long(长整形) | 4字节 | (-2^31 ~ 2^31-1) |
long long(长长整形) | 8字节 | (-2^63 ~ 2^63-1) |
我们可以用 sizeof( ) 函数来查询不同的整形所占用的空间
1 |
|
输出:
1 | int变量,占用字节:4 |
其实本质上没啥区别,就是占用空间和取值范围不一样,一般 int 就够用了
实型
在C++中,实型以 float 为主,但还有别的表现形式,如下表
数据类型 | 占用空间 | 有效数字范围 |
---|---|---|
float(单精度) | 4字节 | 7位有效数字 |
double(双精度) | 8字节 | 15~16位有效数字 |
long double(多精度) | 16字节 | 18-19位有效数字 |
- 对于 有效数字范围 的解释 此时输出的结果是
1
2
3
4
5
6
7
8
9
using namespace std;
int main(){
float num1 = 123456789;
float num2 = 1.23456789;
cout << "num1 = " << num1 << endl;
cout << "num2 = " << num2 << endl;
return 0;
}为什么会导致这种情况出现呢?1
2
3num1 = 1234567**
num2 = 1.23456***
//*在此处表示随机数的意思- float 最多只支持7位有效数字
在输出数据的时候,系统输出到第8位的时候发现在 float 的规矩下字符不够用了,于是就会胡编乱造出第8、9位数字来填补,从而出现乱码
- 小数点也算一位数!
所以会导致使用 float 时,小数点前和小数点后一共输出6位数字,算上小数点正好七位
- float 最多只支持7位有效数字
字符型
char 类型用来表示字符,同时支持有符号和无符号
数据类型 | 字节数 | 范围 | 映射表 |
---|---|---|---|
char | 1字节 | -128 ~127 | ASCII |
char 类型的本质是 数字
-
通过 ASCII 码表作为参照,字符->数字,数字->字符
下面展示一个例子:1
2
3
4
5
6
7
8
9
10
using namespace std;
int main(){
char ch;
ch = 97;
cout << ch << endl;
ch = 65;
cout << ch << endl;
return 0;
}输出:
1
2a
A因为在 ASCII 码表中,97和65分别表示的是英文字母 “a” 和 “A”,所以输出的是字母而非数字
-
同时,根据这个特性我们也可以有别的操作
1
2
3
4
5
6
7
8
9
10
11
using namespace std;
int main(){
char ch1 = 65;
cout << ch1 << endl;
char ch2 = 'a'; //将 a 的ASCII码赋到 ch2 上
cout << ch2 + 1 << endl;
char ch3 = 'a' + 2; //将 a 的ASCII码加2后赋到 ch3上
cout << ch3 << endl;
return 0;
}此时则会输出
1
2
3A //65在ASCII码表中对应 A
98 //ch2代表的是 a 在ASCII码表中的数字96,96+2=98
c //ch3代表的是 a 在ASCII码表中的数字96,先加上2后输出,即为 c
字符串
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 BaiYB的个人博客!