世界万物,都有其类型,C语言也不例外。
C语言的基本数据类型有:
整型 int
字符型 char
浮点型 float(单精度) double(双精度)
枚举型 enum
结构体 struct
共用体 union
空类型 void
数组类型
指针类型
一、那么类型是什么呢?
如此类型,在初学之时必定让人头晕眼花,曾经的死记硬背也让人伤透了脑筋。但是若换一个角度去记忆去理解那么就会轻松很多。
就好比盛东西的容器,有茶杯,有水杯,有碗,有锅,有壶。这些东西是以什么来分的呢,以盛东西的多少和盛东西的种类以及用法不同来分的。
就好像,茶杯。用来盛茶水的,不大,闲来无事时品茶所用容器。那为什么茶杯不大呢?难道你见过拿一个缸喝茶的人吗?茶杯的大小,就是人们的习惯,人们习惯了用这么大的杯子品茶,久而久之,茶杯就这么大了。不大不小。若觉得用小茶杯喝茶不爽,那你换个缸来喝茶也可以吗~茶杯可以盛茶水,口杯也能,壶也能,都能盛,就是看你习惯如何了。
类比着来看char型(字符型)。八位,范围是0-255。那为何它要是八位是0-255呢?一般人们都用char来盛放一个‘a’,或者盛放一个‘5’。因为这些个东西的arcll码正好是八位,用来盛一个字符恰好不过了。当然你也能用int型来盛放它,但是你不觉得很烧包吗?用一个缸盛一小杯茶水,然后抱起缸来慢慢喝。这是一种对资源莫大的浪费啊。
int型,一般用来盛数字,范围是0-4294967259。可以用来盛放很大很大的数字。这时候你用char来盛就不合适了。因为char根本装不下。
这就是类型,其实就是C语言中的各种容器,用来盛放各种各样的数据。不要问为什么,只是记住,这是前辈们一代一代总结出的最好的容器,他们为我们创造好了容器,我们就拿来直接用好了嘛,何必要去追根溯源呢?难道你弄不明白碗为什么是碗就不吃饭了吗?
二、类型的具体分类。
类型所在的世界也是一代乱世,诸侯割据。一家子一家子各自圈地,以撒尿留气味儿的方式占据着自己的地盘。
他们是:
1、整形家族
1)整形家族简介
以int为大哥的家族,他们的成员分别是:int,short,long。是一堆安居乐业的好青年,奈何生在乱世,戎马不断。
2)整形家族一览
类型([ ] 表示可以省略 比特数(即占多少位) 取值范围
[signed] int 32 -2147483648-2147483647
unsigned int 32 0-4294967295
[signed] short 16 -32768-32767
unsigned short 16 0-65535
[signed] long 32 -2147483648-2147483647
signed long 32 0-4294967295
这不是明明有6个类型吗,为什么说他们只有三个呢?因为int 和unsigned int 是同一个人,本来int是有血有肉有正有负的大好青年,但是因为感情受挫,加上党的需要,它就变成了一个直男,从此只正不负。short和long也是一样,他们为我们的社会主义现代化做出了应有的贡献,变成直男。
有一点需要注意,long类型和short类型会根据不同位数的机子而改变大小。但有一条原则不变。
short<= int <= long
3)整型常量
整型常量需特别注意的是
以0开头的是八进制,以0x开头的是16进制,没有开头的是10进制。
整型常量中只能用来存这三种进制的进制数。
八进制举例 0762 010 0537
十六进制举例 0x0000 0x0f32
十进制就不用举例了吧,自己翻小学课本自然数那章。
2、实型家族
1)实型家族简介
实型家族人少,但是凶猛,就俩人,float和double。别看人少,他们可是北方游牧少数民族。一个个块大的不得了,能吃能打能跑能跳。多少敌人都跪倒在了他们面前。但是他们在一般程序中利用率并不高,只有在图像处理方面以及一些高端运算时用处颇大。
2)实型家族一览
类型([ ] 表示可以省略 比特数(即占多少位) 取值范围
float 32 这个自己查书吧,那个平方我打不出来
double 64 同上
long double 64 同上
3)实型常量
C语言中,实型常量只采用十进制。它有两种形式:十进制数形式和指数形式。所有浮点常量都被默认为double型。(这段抄书的。。。。。。。)
3、字符型家族
1)字符型家族简介
字符型家族人少,就一个光杆司令,char。可怜的字符型家族是南方蛮族,蛮,但是实力有限,人还少,最多也就能起到骚扰作用。但是用处广泛,深的人们喜爱,尤其南方蛮族的妹子好卵水灵的嘞~
2)字符型家族一览
类型([ ] 表示可以省略 比特数(即占多少位) 取值范围
Char 8 0-255
3)字符常量
赋值时只能用‘’引起来,别的一律不行。
char a = ‘b’;
4、枚举家族
1)枚举家族简介
这是一帮住在中国西部沙漠中的家族,人不知道多少,但基本见不到,战斗力未知,人数未知,生存条件未知。。。。
2)这货没有一览,因为是一种自定义的类型。举个例子好了,主要是学习记住它的语法结构
enum sgp_type{
Sgp_quick,
Sgp_read,
Sgp_cache,
};(这例子也是抄书的哦啦啦啦~我是搬运工~)
这里面的Sgp_quick,Sgp_read,,Sgp_cache就被分别定义为了0,1,2。以此类推。
5)指针家族
这货是外星来的。。。。。。。。
外星人入侵了。。。。。。。。。。
全地球警戒。。。。。。。。。。。。
(在这里不说这货了,等到指针的时候再具体讲。。。。。外星人真的入侵了。。。。)
ps:仅仅是一些记录和自己的一些见解,不喜勿喷,若有错误之处,敬请指正。