数据类型及其操作
2020-01-14 本文已影响0人
HEARTSTRIN
数据类型:
1、整形:int
2、浮点型:float
3、双浮点型:double
4、布尔:bool
5、无类型:void
6、字符型:char
7、宽字符型:wchar_t
一些基本类型可以使用一个或多个类型修饰符进行修饰:
signed
unsigned
short
long
在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。计算机最小的储存单位是位,即一个1或者一个0称为一位,一字节是8位,即100111001是一字节。8位最前面的数字有时候用来代表符号位。
1字节(byte常用B来代替)=8位(bit常用b来代替)。
char 1 个字节 -128 到 127 或者 0 到 255
类型 | 占用内存 | 范围 |
---|---|---|
char | 1字节 | -128~127或0~255 |
signed char | 1字节 | -128~127 |
unsigned char | 1字节 | 0~255 |
int | 4字节 | -2147483648 到 2147483647 |
signed int | 4字节 | -2147483648 到 2147483647 |
unsigned int | 4字节 | 0 到 4294967295 |
short int | 2字节 | -32768 到 32767 |
signed short int | 2字节 | -32768 到 32767 |
unsigned short int | 2字节 | 0~65534 |
long int | 8字节 | -9,223,372,036,854,775,808 到9,223,372,036,854,775,807 |
signed long int | 8 字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long int | 8 字节 | 0 到 18,446,744,073,709,551,615 |
float | 4 字节 | +/- 3.4e +/- 38 (~7 个数字) |
double | 8 字节 | 双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字) |
long double | 16 字节 | 长双精度型 (128位)内存空间,可提供18-19位有效数字。 |
wchar_t | 2 或 4 字节 | 1 个宽字符 |
typedef声明
可以使用typedef为已有类型取一个新的名称。语法为:
typedef int num;//为整型取了一个新的名称num
num ball;//用num声明一个ball变量
关键字 typedef 在编译阶段有效。而#define是宏定义,在预处理阶段。
枚举类型
枚举类型是C++中派生出来的一种类型,如果一种类型只有几种已知值,可以定义为枚举类型。定义语法为:
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数]
} 枚举变量;
此处枚举名不是基本类型。如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始。 每个枚举元素在声明时被分配一个整型值,默认从 0 开始,逐个加 1。
例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 "blue"。
enum color { red,
green,
blue
} c; //定义枚举
c = blue; //给枚举变量赋值
enum color co = green;//声明枚举变量
我们常常为了方便枚举的使用,和 typedef 结合使用,例如:
typedef enum color{
red=0,
green,
blue,
black
}c;
使用的时候,c不再是变量,而是可以声明变量的类型。是color的另外一个名字。
就不用再
enum color co =green;
而可以直接用:
color co = green;
完整代码:
#include <iostream>
using namespace std;
int main(){
enum color { red,
green,
blue
} c; //定义枚举
c = blue; //给枚举变量赋值
enum color co = green;
switch(c){
case 0:
cout << "one" << endl;
break;
case 2:
cout << "two" << endl;
break;
default:
cout << "three" << endl;
break;
}
return 0;
}