您的位置:首页 > 编程语言 > C语言/C++

C/C++基本数据类型的存储空间长度及取值范围

2015-09-09 22:33 726 查看
C/C++语言的ANSI标准只规定了每种数据类型的最小取值范围,而非字节数大小。其依赖于机器、编译器和操作环境版本。以C++为例如下,C++兼容C。

类型
含义
最小尺寸

Bool 布尔 未定义

Char 字符 8位

wchar_t 宽字符 16位

char16_t Unicode字符 16位

char32_t Unicode字符 32位

short 短整型 16位

int 整型 16位

long 长整型 32位

long long 长整型 64位

float 单精度浮点数 6位有效数字

double 双精度浮点数 10位有效数字

long double 扩展精度浮点数 10位有效数字

其中,Char类型占用1个字节的存储空间;

int与环境有关,16位环境int大小为16位,32位环境多数情况下int是32位(如VC++的编译器下int类型为占4个字节;而tuborC下则是2个字节)。

ANSI/ISO规定:

sizeof(short int)<=sizeof(int)

sizeof(int)<=sizeof(long int)

sizeof(long int)<=sizeof(long long int) (long long int是C++11中新定义)

下面给出不同位数编译器下的基本数据类型所占的字节数:

16位编译器

有符号型:

int: 2个字节

short : 2个字节

long: 4个字节

long long: 8个字节

无符号型:

unsigned int : 2个字节

unsigned short:2个字节

unsigned long: 4个字节

实型变量:

float: 4个字节 提供7位有效数字;

double: 8个字节 提供16位有效数字;

long double:16个字节 提供18-19位有效数字;

字符型:

char :1个字节

char*(即指针变量): 2个字节

32位编译器

有符号型:

short: 2个字节

int:4个字节

long: 4个字节

long long: 8个字节

无符号型:

unsigned short: 2个字节

unsigned int : 4个字节

unsigned long: 4个字节

实型变量:

float: 4个字节 提供7-8位有效数字;

double: 8个字节 提供15-16位有效数字;

字符型:

char :1个字节

char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)

64位编译器

有符号型:

short: 2个字节

int:4个字节

long: 8个字节

long long: 8个字节

无符号型:

unsigned int : 4个字节

unsigned long: 8个字节

实型变量:

float: 4个字节

double: 8个字节

字符型:

char :1个字节

char*(即指针变量): 8个字节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: