[c语言]数据类型的分类

本文介绍了C语言中的数据类型,包括整型(char,short,int,long,longlong)和浮点型(float,double),详细阐述了它们的存储范围和内存占用。此外,文章提及构造类型(数组、结构体、枚举、联合)和指针类型,但重点在于整型和浮点型数据在内存中的存储方式。
摘要由CSDN通过智能技术生成

在深入了解数据在内存中的存储之前,我们首先得做一些前期的准备工作,即了解关于c语言中类型的分类,再在这部分前置知识的基础上了解整型数据和浮点型数据分别是怎么样在内存中存储的。这篇文章主要介绍了数据类型在内存中的分类,重点介绍整型和浮点型。


类型的分类

在c语言中,我们将数据类型分为整型,浮点型,构造类型,指针类型和空类型。一方面,不同的类型意味着使用这个类型时开辟的内存空间的大小不同,而内存空间的大小决定了使用范围;另一方面,不同的类型也决定了我们看待内存空间的视角不同。

整型

整型家族里的成员有char,short,int,long,long long等,它们中的每个又可以分为有符号和无符号两种,具体分类见下:

    • char
  • C标准未规定char是按signed char处理还是按unsigned char处理,这取决于编译器,但大多数编译器规定为signed char。

  • 为什么将char归在整型里?

在内存中,char是以ASCII码的形式存储的,而ASCII码本质上也是一个个整型数字,所以可以认为char也是一种整型数据。

分类

范围

输出格式

大小

unsigned char

0~255

%c

1字节

signed char

-128~127

    • short
  • short 也可以写成short int,但int通常省略不写

  • C标准规定short按signed short处理。

分类

范围

输出格式

大小

unsigned short

0~65535

%hu

2字节

signed short

-32768 ~ 32767

%hd

    • int
  • C标准规定int 按signed int处理。

分类

范围

输出格式

大小

unsigned int

0~4294967295

%u

4字节

signed int

-2147483648 ~ 2147483647

%d

    • long
  • C标准规定long 按signed long处理。

  • long 也可以写成long int,但int通常省略不写

分类

范围

输出格式

大小

unsigned long

0~(2^32)-1

%lu

4字节

signed long

-2^31 ~ (2^31)-1

%ld

    • long long
  • C标准规定long long按signed longlong处理。

  • long long也可以写成long long int,但int通常省略不写

分类

范围

输出格式

大小

unsigned long long

0~(2^64)-1

%llu

8字节

signed long long

-2^63 ~ (2^63)-1

%lld

浮点型

浮点型数据用来表示具有小数点的实数。浮点型家族里的成员有float和double两兄弟。它们同样可以分为有符号和无符号两种,具体分类见下:

分类

大小

输出格式

默认保留位数

float

unsigned float

4字节

%f

6

signed float

double

unsigned double

8字节

%lf

signed double

构造类型和指针类型

由于本文的介绍重点为数据在内存中的存储的前置知识,因此对构造类型和指针类型不做着重描述。

构造类型

构造类型分为数组类型,结构体类型 struct,枚举类型 enum和联合类型 union,这里简单介绍一下数组类型,其他不做展开介绍。

    • 数组类型
  • 格式: 类型 数组名[数组元素个数]

  • 类型表示数组所存储元素的数据类型,例如int,char等。

  • 起数组名的时候最好起一些有含义的名称,便于他人理解和日后更改等

  • 数组中若指定元素数目,那么[]中只能是整型数据或者是整数表达式,例如[10]、[5+5],一般来说,C语言数组[ ]里不可以放变量,因为他们是使用C99之前的标准(C99标准中规定可以数组[ ]里可以放变量).

  • 为什么数组类型是构造类型?

给定一个数组 int arr[10];它的类型为int[10]而不是int,因此数组类型是构造类型而不是基本数据类型。

指针类型

指针类型有int *,char *,float* ,void* 等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值