C++类型
首先明确一个概念,什么是类型?我们知道程序可以说是由两部分组成:数据结构+算法。通过学习数学,我们知道形容一个东西的存在是形式时,我们可以用个,块,桶,串等词来描述,在买卖过程中,使用货币时,我们有元角分单位。在描述这些东西存在的数量时,我们就用到了数字,不同国家的语言在描述数量时的手法不一样。所以为了能将这些杂七杂八的东西给存入计算机,计算机对数据的存储进行了分类,并统一了类型标准。
基本数据类型
bool | 存储值 true / false |
char | 通常存储一个 八位 字符 |
int | |
float | 单精度浮点值。单精度是这样的格式,二进制从左往右:1位符号,8位指数,23位小数。 |
double | 双精度浮点值。双精度是1位符号,11位指数,52位小数。 |
void | 表示类型的缺失 |
wchar_t | 宽字符类型,char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。
wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位,总之,wchar_t所能表示的字符数远超char型 |
修饰符
在基本数据类型的情形下,还有一个修饰符的概念,可以理解为加上修饰符改变数据类型的范围。
修饰符 signed、unsigned、long 和 short 可应用于整型,signed 和 unsigned 可应用于字符型,long 可应用于双精度型。修饰符 signed 和 unsigned 也可以作为 long 或 short 修饰符的前缀。例如:unsigned long int。C++ 允许使用速记符号来声明无符号短整数或无符号长整数。您可以不写 int,只写单词 unsigned、short 或 unsigned、long,int 是隐含的。extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候。使用 static 修饰局部变量可以在 函数调用之间 保持局部变量的值,static 修饰符也可以应用于全局变量,当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内,在 C++ 中,当 static 用在 类数据成员 上时,会导致仅有一个该成员的副本被类的所有对象共享。
限定符
const | const 类型的对象在程序执行期间不能被修改改变 |
volatile | 修饰符 volatile 告诉编译器不需要优化volatile声明的变量,让程序可以直接从内存中读取变量。对于一般的变量编译器会对变量进行优化,将内存中的变量值放在寄存器中以加快读写效率 |
restrict | restrict的定义是:It can be applied only to pointers, and it indicates that a pointer is the sole initial means of accessing a data object。表示指针指向的内存不能被别的指针引用。告诉编译器被restrict修饰的指针所指 向的对象,只能通过这个指针或基于这个指针的其他指针进行操作,这对编译器的优化很有好处。 |
C++关键字
每个关键词详细解释请转移至:https://zh.cppreference.com/w/cpp/keyword