一,基本数据类型
C++提供了多种数据类型,当需要存储数据时,用其创建变量,系统会自动为其分配空间。以下列出七种数据类型。
数据类型 | 关键字 | 字节数 | 取值范围 |
整形 | int | 4字节 | -2147483648~2147483647 |
浮点型 | float | 4字节 | +/- 3.4e +/- 38 |
双浮点型 | double | 8字节 | +/- 1.7e +/- 308 |
字符型 | char | 1字节 | -128 到 127 |
宽字符型 | wchar_t | 2字节 | 1 个宽字符 |
布尔型 | bool | 1字节 | true和false |
无类型 | void |
其中,在不同的操作系统中,有些类型的大小会对应的不同,例如int类型的大小是占一个内存单元,在以前的16操作系统中即占16位(一个字节占8位),即2个字节。后来的32位操作系统里则占32位,即4个字节,在这之后的c++体系里由于习惯延续了4个字节这一传统作为规定。建议使用sizeof(数据类型)来查看自己的数据类型大小,例如sizeof(int);
void类型也叫空类型,不能直接用它定义变量。它的作用主要有三个方面:
- 作为函数返回类型表示函数没有返回值。
- 当函数不接受参数时,在其参数表申明为void,例如int Num(void);
- 作为void * 指针使用,是通用型指针,它可以接收任意类型的指针,也可以解析成任何类型的指针。例如, void *malloc( size_t size );
一些基本类型可以使用一个或多个类型修饰符进行修饰:
- signed
- unsigned
- short
- long
一般情况下,short,int,long默认为singed类型,即有符号类型,此时数据的最高位表示为符号位,unsigned为无符号类型,取消符号位(二进制最高位0表示正数,1表示负数)。
例如有符号的int类型的取值范围为 -2147483648~2147483647,无符号位的int类型取值范围是 0 ~ 429496729
short int为短整形占2个字节,long int为长整形占8个字节(同样受操作系统的影响)。
二,其他类型
枚举类型
枚举类型是一种派生类型,可以自由定义由常量组成的集合变量。
枚举变量的定义方式:enum 枚举名 { 枚举值表 };
枚举值表中应该罗列出所有的值,这些值也称为枚举元素,不赋值的话,默认第一个元素的值是,缺省的元素由前面元素的值依次加1。枚举值是常量,定义出的枚举变量只能赋值为枚举值;枚举类型定义的可能的取值均为整数。枚举就是一个小整形,它的优点是限制了范围;
enum Nums{
a,
b=5,
c
}
其中,a=0;c=6;
typedef 自定义类型
typedef 可以为一个已有的类型取一个新的名字即别名,
typedef 返回值类型 新名字
例如:
typedef int NewInt;
此时,我们就可以用NewInt来作为类型来定义int类型的变量,它的作用在于为一个复杂的别名取一个简单的别名,比如一些复杂的指针。
typedef并不是简单的别名,它其实是对类型的一种封装。区别于宏定义#define的简单替换,需要考虑它在遇到const时的属性。同时它也是一个存储类的关键字,会与static,auto等关键字冲突。
用于学习使用。