C语言的数据类型

一.C语言的数据类型

在C语言中,为我们提供了大量且丰富的数据类型来描述生活中的各种数据。那么所谓“ 类型 ”,就是相似数据所拥有的共同特征,我们在各种编译器中输入代码,只有当编译器知道了我们数据的类型,才知道怎么去操作并且输出数据。列如:整型类型来描述整数,字符类型来描述字符,浮点数类型来描述小数......

在C语言中的数据类型如下:

1.字符型

(1)char      (其含义是character)

(2)[singed] char (表示有符号的,这里的符号指的是正负号)

(3)unsinged char (表示无符号的)

关于这里的singed和unsinged会在后面为大家详细介绍,一般情况下使用char就已经足够了。下面类型的singed和unsinged也是一样的的有无符号的意义,在此就不在给大家过多赘述了

2.整型

(1)短整型:

short [int]       [singed] short [int]       unsinged short [int]

(2)整型:

int       [singed] int       unsinged int

(3)长整型:

long [int]       [singed] long [int]       unsinged long [int] 

此外,还有更长的整型,在C99中引入:

long long [int]       [singed] long long [int]       unsinged long long [int]

3.浮点型

(1)float

(2)double

(3)long double

4.布尔类型

其实,C语言在原最开始并没有单独为布尔值设置一个类型,而是使用整数0来表示假,非零数来表示真。而在C99中引入了布尔类型,专门用来表示真假

_Bool

此外,布尔类型的使用必须得包含头文件 <stdbool.h>,布尔类型变量的取值为:true或false

每种数据类型都有自己的长度,使用不同的数据类型,能够创建出长度不同的变量,变量长度的不同,储存的数据范围也会有所差异

二.signed关键字和unsigned关键字

既然以上提到了signed和unsigned,接下来就为大家简单的介绍一下

signedunsigned是C语言中两个比较特殊的关键字,它们是用于修饰整型和字符型的。

1.signed关键字,表示它所修饰的类型带有正负号,也就是包含负值

2..unsigned关键字,表示它所修饰的类型不带有正负号,也就是只能表示零和正整数

(对于 int 类型来说,系统默认的是带有正负号的,也就是说,“ int ”就等价于“ signed int ”,所以一般情况下其关键字signed都是省略不写,当然写了也不影响运算结果。但当我们需要用 int 类型只表示正整数的话,就在 int 前必须加上关键字:unsigned 声明变量,同理,其他的数据类型也是如此,这就是关键字signed和unsigned的使用)

三.sizeof 操作符

在前面的 “ C语言的相关概念(二) ”中我有给大家总结到关键字如果大家没有看到,可以去看看。这个sizeof就是其中之一,因此,“ sizeof ” 既是一个关键字,也是操作符。这个操作符是专门用来计算sizeof的操作符的类型长度的,其单位是字节

1.sizeof操作符之中的操作数可以是类型,也可以是变量或者表达式。操作数是类型需要加括号,列如:sizeof( 类型 ),当其中是表达式的时候可以忽略括号,列如:sizeof 表达式 。且表达式不真实参与运算,只是根据表达式的类型得出大小

2.sizeof的计算结果是size_t类型

 

如图中所示,第一个输出的是sizeof中表达式的大小,结果表示其占两个字节的大小,第二个输出的是y的值,结果为“ y = 2 ”就可以表示sizeof中的表达式并不计算

下图为通过sizeof计算各个数据类型所占的字节

四.数据类型的取值范围

 1.以上我们列举的每一种数据类型都有其自己的取值范围,也就是它们能够存储数据的最小值和最大值的区间,有了这种丰富的取值区分,我们就可以在适当的场景里去合理的选择适合的类型,那么我们怎么知道各个类型的取值区间呢?我们可以在系统里查看:

“ <limits.h> ”文件表示整型类型的取值范围,“ <float.h> ”表示浮点型类型的取值范围

通过以下的常量来输出相应类型的取值范围

(1)SCHAR_MIN SCHAR_MAX :signed char 的最小值和最大值
(2)SHRT_MIN SHRT_MAX :short 的最小值和最大值
(3)INT_MIN INT_MAX :int 的最小值和最大值
(4)LONG_MIN LONG_MAX :long 的最小值和最大值
(5)LONG_MIN LLONG_MAX :long long 的最小值和最大值
(6)UCHAR_MAX :unsigned char 的最大值
(7)USHRT_MAX :unsigned short 的最大值
(8)UINT_MAX :unsigned int 的最大值
(9)ULONG_MAX :unsigned long 的最大值
(10)ULLONG_MAX :unsigned long long 的最大值
这里用字符型char给大家举例,格式就是这样的,如图所示,char的取值范围就是“ -128~127 ”( 其他类型同理,大家可以自己去码一码试试,我在这里就不给大家赘述了 )

 

OKK,有关C语言的数据类型暂时就给大家总结到了这么多。当然了,知识点是总结不完的,这个因人而异嘛,每个人的理解不一样,我也只是总结到了我自己认为比较重要的点,并没有事无巨细给大家统统罗列出来。所以,如果大家有我没有提到且想知道的,或者有疑问的,欢迎我跟沟通交流,事后我也会将各位看官老爷想知道的内容补充上去的。与诸君共勉!!!

 

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值