开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 17 天,点击查看活动详情
变量的数据类型
在函数体内部,如果定义了一个变量,但没有进行初始化,此时该变量就不能拿来参与计算。因此,在使用变量之前,必须给这个变量赋值(初始化)。
一般来说,赋值符号 = 右边的数据类型应该是和左边变量的数据类型是相匹配的。但有些情况下可能会不一致。
比如:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a = 10, b = 5;
double ans = a - b;
cout << ans;
return 0;
}
可以看到,上述代码中,两个整数相减(a-b)还是整数,但是赋值给了一个浮点数类型的变量 ans 。这时,就会发生自动类型转换。跨类型的自动转换可能会造成一些精度损失。比如右边是浮点数类型的变量,左边是整数类型,此时C++在自动转换时会舍去浮点数的小数部分。
常见的数据类型
常见的数据类型如下所示:
char:1字节,8位,取值范围在 之间int:4字节,32位,取值范围在 ,大约能够表示绝对值不超过 的整数unsigned int: 4字节,32位,取值范围在 ,大约能够表示不超过 的非负整数long long:8字节,64位,取值范围在 ,大约能够表示绝对值不超过 的整数unsigned long long:8字节,64位,取值范围在 ,大约能够表示不超过 的非负整数float:4字节,32位,大约指数绝对值不超过37,6位有效数字double:8字节,64位,大约指数绝对值不超过307,15位有效数字
需要注意,数据类型默认是带符号的,即 signed,可以表示正数、负数以及0。如果在数据类型之前添加上 unsigned ,就会变成无符号数,此时只能表示正数和 0。
为了权衡精度和空间与速度,一般情况下会使用
int数据类型来存放整数,只有当int无法存下一些特别大的数字时,才需要使用long long;而浮点数如果空间有有限制,则选择float,否则选择double。