整型

数据类型存在的意义:给数据分配合适的内存空间.
整型:存储整数的数据类型
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,二者的区别是表示的数据范围不同

数据类型占用空间有效数字范围
float4字节7位有效数字
double8字节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;
}