数据类型
数据类型
一、计算机中内存单位
- 1.bit : bit位只能存放 0 / 1
- byte 字节 = 8 bit
- 1kb = 1024byte
- 1mb = 1024kb
- 1gb = 1024mb
二、数据类型的种类
C语言中有各种不同的数据类型,使用不同数据类型的定义变量时,可以从内存中申请不同大小的内存空间,具体使用哪种数据类型定义变量,要看你存储变量的值的类型。
1、char 字符类型
- char : 内存中占1个字节,8个bit,字符’a’ ,‘b’ ,‘c’…
- signed char :有符号字符类型 signed可以忽略不写,数据位范围[-128~+127]
- undigned char:无符号类型,数据位范围[0~+255]
- 在32位和64位操作系统中,char类型的变量在内存中都是占用1字节的空间。
2、short(短整型)
- short :内存中占用2个字节,16个bit,主要用于存放小型数据
- signed short :有符号字符类型,signed可以忽略不写,数据位范围[ -32768 ~ 32767]
- undigned short:无符号类型,数据位范围[0 ~ 65535 ]
- 在32位和64位操作系统中,short类型的变量在内存中都是占用2字节的空间。
3、int (整型)
- int :内存中占用4个字节,32个bit,主要用于存放数字,有无符号之分
- signed int :有符号字符类型,signed可以忽略不写,数据位范围[ -2147483648 ~ +2147483647]
- undigned short:无符号类型,数据位范围[0 ~ +4294967295 ]
- 在32位和64位操作系统中,int类型的变量在内存中都是占用4字节的空间。
4、long (长整型)
在32位系统中占用4个字节,在64位系统中占用8个字节
5、long long (长长整型)
在32位和64位操作系统中,long logn类型的变量在内存中占用8字节的空间。
6、浮点类型数据储存
- float 单精度浮点类型,占用4字节
- double 双精度浮点类型,占用8字节
7、64位系统,使用以下代码进行验证类型占用的字节
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("short type size = %ld\n", sizeof(short));
printf("int type size = %ld\n", sizeof(int));
printf("long type size = %ld\n", sizeof(long));
return 0;
}
如果是32位系统,使用以下代码进行验证:
gcc 文件名 -m32 —> 编译生成32位可执行程序
例如:gcc hello.c -m32 —> 编译生成32位可执行程序
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("short type size = %d\n", sizeof(short));
printf("int type size = %d\n", sizeof(int));
printf("long type size = %d\n", sizeof(long));
printf("long long type size = %d\n", sizeof(long long));
return 0;
}