整型
数据类型存在的意义:给数据分配合适的内存空间.
整型:存储整数的数据类型
C++表示整型的的类型有以下几种,区别是占用不同的内存空间.
数据类型 | 占用空间 | 取值范围 |
---|---|---|
short(短整型) | 2字节 | -215 ~ 215-1 |
int(整型) | 4字节 | -231 ~ 231-1 |
long(长整型) | Windows为4字节,Linux为4字节(32位),8字节(64位) | -231 ~ 231-1 |
long long(长长整型) | 8字节 | -263 ~ 263-1 |
sizeof关键字
作用:统计数据类型所占内存大小
语法:sizeof(关键字/变量)
#include<iostream>
using namespace std;
int main() {
cout << "短整型的大小:" << sizeof(short) << endl;
cout << "整型的大小:" << sizeof(int) << endl;
cout << "长整型的大小:" << sizeof(long) << endl;
cout << "长长整型的大小:" << sizeof(long long) << endl;
return 0;
}
打印结果短整型的大小:2
整型的大小:4
长整型的大小:4
长长整型的大小:8
注意:
sizeof是关键字,而不是函数,对于字面量或者变量可以不用括号,但是对于类型名一定要用括号
#include<iostream>
using namespace std;
int main() {
short a = 10;
cout << "短整型的大小:" << sizeof a << endl;
cout << "整型的大小:" << sizeof 20 << endl;
return 0;
}
打印结果:短整型的大小:2
整型的大小:4
实型(浮点数)
作用:表示小数,分为float和double,二者的区别是表示的数据范围不同
数据类型 | 占用空间 | 有效数字范围 |
---|---|---|
float | 4字节 | 7位有效数字 |
double | 8字节 | 15~16位有效数字 |
#include<iostream>
#include <iomanip>
using namespace std;
int main() {
float pi = 3.14159265358979323846f;
double PI = 3.14159265358979323846;
cout << fixed << setprecision(15);
cout << "float pi: " << pi << endl;
cout << "double PI: " << PI << endl;
return 0;
}
打印结果:float pi: 3.141592741012573
double PI: 3.141592653589793
可以看到float在超过7位就出现了误差,并且当我们使用float时,最好在字面量后面加上字母f,表示告诉编译器这是一个float类型的数据,否则当编译器看到这个字面量时,会认为它是double类型的.
科学计数法表示小数
#include<iostream>
using namespace std;
int main() {
float f1 = 3e2;// 3*10^2
float f2 = 3e-2;// 3*10^-2
cout << "f1=" << f1 << endl;
cout << "f2=" << f2 << endl;
return 0;
}
字符型
字符型变量用于显示单个字符
语法:char ch='a';
注意:
- 在显示字符型变量时,用单引号将字符括起来,不要用双引|号
- 单引号内只能有一个字符,不可以是字符串
- char类型占据1个字节.
- 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
#include<iostream>
using namespace std;
int main() {
char ch = 'a';
cout << ch << endl;
cout << sizeof ch << endl;
cout << int(ch) << endl;
return 0;
}
通过int强制类型转换就可以查看字符对应的ASCII码值
转义字符
常用的有\n \\ \t
转义字符 | 含义 | ASCII码值(十进制) |
---|---|---|
\a | 警报 | 007 |
\b | 退格(BS),将当前位置移动到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF),将当前位置移到下一行开头 | 010 |
\r | 回车(CR),将当前位置移到本行开头 | 013 |
\t | 水平制表(HT)(跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\ | 代表一个反斜线宇符"\" | 092 |
\' | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\? | 代表一个问号 | 063 |
字符串型
c风格字符串:char 变量名[]="字符串值"
示例:
#include<iostream>
using namespace std;
int main()
{
char str1[]="hello,world";
return 0;
}
C++风格字符串:`string 变量名="字符串值";
注意:需要包含一个头文件#include<string>
#include<iostream>
using namespace std;
int main() {
string a = "hello,world";
cout << a << endl;
return 0;
}
在C++中两种方式均可以,C++向下兼容c语言.
布尔类型
bool类型只有两个值true(本质是1)或false(本质是0)
除了0的值均为ture
#include<iostream>
using namespace std;
int main() {
bool a = true;
cout << a << endl;
bool b = false;
cout << b << endl;
cout << sizeof(bool) << endl;
return 0;
}