什么是数据类型?
数据类型就是存储不同大小数字的容器。
整型
整型最常见的就是 int,占 4 个字节,即 4 * 8 = 32 比特,可以表达的整数个数为 ,由于包括负数,0, 和正数,实际表示范围为 ~,如果是 unsigned int,即没有负数区间,表示范围为0 ~。
cout << sizeof(int) << endl;
输出:
4
当 int 无法满足存储需要时,我们需要更大的数据类型 long long,占 8 个字节。
1.当题目中数据范围明显超出 int,比如 1000000 个数字,每个数字范围都是 int,求和。
2.比较隐晦,比如 20 的阶乘,结果 1 * 2 * 3 * …… * 20
。
浮点型
float 占 4 字节,保留有效位数 7 位,double 占 8 字节,保留有效位数 16 位。一般在算法竞赛中,我们都使用 double。
保留指定小数位数:需要引入库 #include<iomanip>
const double PI = 3.14159265358;
cout << PI << endl; //默认显示6位有效数字
cout << fixed << setprecision(6) << PI << endl;
输出:
3.14159
3.141593
[info] 注意
必须加 fixed,否则实际输出位数可能会小于指定保留位数。
字符型
字符常量是由单个字符组成,所有字符采用 ASCII 编码,通用 ASCII 编码共有 128 个字符。在程序中通常用一对单引号将单个字符括起来表示一个字符常量。如:'a','0','A'。
ASCII 码表:
常用转义字符:
cout << "欢迎来到图灵之星编程\n";
cout << "好好学习\t天天向上\n";
cout << "输出一个反斜杠\\";
输出:
欢迎来到图灵之星编程
好好学习 天天向上
输出一个反斜杠\
数据存储单位
数据类型隐式转换
隐式转换是指在编程语言中,由编译器自动执行的类型转换过程,而无需显式指定。这种转换是为了保持操作的一致性,使不同类型的数据能够在一些特定的上下文中进行运算或操作。隐式转换通常涉及到较小范围数据类型向较大范围数据类型的转换,以避免数据丢失或提高精度。