C语言之基本数据类型
2019-11-14 08:53:48
供稿:网友
C语言数据类型之基本类型C语言编程其中一个比较重要的地方是对数据的组织。我们通常会看到各种结构体类型的数据,就是对数据的一种组织方式。这样将数据组织起来,有利于我们对数据的操作和管理。合理的数据结构,可以使我们的程序算法简洁、有条理。今天,不讲数据结构,而是讲一下组成这些结构体的基本数据。C语言中涉及到的基本数据类型并不多,共有以下几种:char(字符型)、short(短整型)、int(整型)、long(长整型)float(单精度浮点型)、double(双精度浮点型)。可以将这6种基本类型做一下归类:字符值:char。用于表示字符,如'a','b','c','1','2','3'等等。整值:short、int、long。用于表示一个整数,如0,1,3,5,56,582等等。浮点值:float、double。用于表示一个小数,如1.2,1.32,4.563等等。也就说,在你的程序中,如有想用一个变量来表示字符的,那么就用char来进行声明和定义,如果想用来表示整数的,就用short、int或者long来进行声明和定义,如果想表示一个小数,那么就使用float或者double来进行声明和定义。如下:char c = 'a';int i = 54;float f = 3.3;PS:以上为了便于理解,对这些变量进行了初始化。OK,上面只是对这些基本类型数据的一些简单说明,下面再深入一下。对于整值来说,可以用short声明,也可以用int声明,也可以用long声明,那么这三者有什么区别呢?对于浮点值来说,可以用float声明,也可以用double声明,这两者又有什么区别呢?这就涉及到一个叫字节的东西。大家知道,计算机能够识别的数据是二进制数据,即只认识0或1,那么当我们定义并初始化一个整值变量时,计算机是怎么去进行识别的呢?前人总是很机智的,他们提出了一个叫进制转换的概念,即可以将十进制(八进制等)数转换为二进制(反之亦然)。那么当我们定义并且初始化一个变量时,该变量存储到内存中时,就会自动按照二进制的方式去存储了。那在内存中,一个0或者1称为一个位,那么8个位就为一个字节,这样的话,一个字节(不考虑符号问题)最大可以表示255(2^8-1),最小可以表示0(具体可以看看二进制和十进制的转换方法)。那么到这里,大家肯定疑问,一个字节最大才能表示255,那我的变量数值大于255怎么办?那就再多加一个字节呗,这样两个自己最大就能表示65535(2^16-1)。如果还不够,那么我就再加一个字节,三个字节最大能表示2^24-1,以此类推。。。那么short、int、long的区别是什么呢?short类型的变量为两个字节,int类型的变量为4个字节,long类型的变量为8个字节(皆针对32位系统)。那到这里,就很明了了,这三者的区别就是能表示的数的最大值不一样,如short最大只能表示65535,而int最大只能表示2^32-1,long最大只能表示2^64-1。这样就看你的程序需求,根据变量的值范围进行变量声明。不过在变量值不大于4个字节的基础上,一般都是用int进行声明了。那float和double又有什么区别呢?double的精度比float高,double的有效位达到15位(有些系统是16位),比如可以表示3.12345678912345这么大精度的数值,而float的精度就只有6位(有些系统是7位),只能表示3.12345这么大精度的数值。类型 有效位 字节数****************************************float 6 – 7 4****************************************double 15 – 16 8****************************************类型 指数长度 尾数长度****************************************float 8 位 23 位****************************************double 11 位 52 位****************************************float和double在现有项目中用得比较少,暂时只做这些总结,后续若项目中有用到,再进行总结。关于浮点值和二进制的转换规则还有点迷糊。