C语言基础——数据
数据
一 整数类型
有符号整数类型(整形,短整型,长整型)
无符号整数类型(无符号整型,无符号短整型,无符号长整形)
1.有符号整数类型
1)整型(int)
整数的默认保存类型,一个整形数据占4个字节。
大小:-231~(231-1),即-2147483648 ~ 2147483647。
integer(意思为整型)
2)短整型(short)
较小整数保存类型,一个短整型占2个字节。
大小:-215 ~ (215-1),即-32768 ~ 32767。
short(意思为短的)
3)长整型(long)
较大整数的保存类型,一个长整型数据占4个字节。
大小:-231~(231-1),即-2147483648 ~ 2147483647。
long(意思为长)
2.无符号整数类型
无符号整数类型只包含正数,这样就能将二进制的符号位作为整数位。使得取值范围比有符号整数类型大了一倍。
在有符号整数类型说明符前添加前缀unsigned,即构成对应的无符号正数类型说明符。在无符号整数类型后要加后缀字母u或U。
1)无符号整数
无符号整数类型使用说明符 unsigned int 表示。一个无符号整型数据占4个字节。取值范围 0~4294967295。
2)无符号短整型
无符号短整数类型使用说明符 unsigned short 表示。一个无符号短整型数据占2个字节。取值范围 0~65535。
3)无符号长整形
无符号长整数类型使用说明符 unsigned long 表示。一个无符号长整型数据占4个字节。取值范围 0~4294967295
unsigned意为无符号
当处理的数据只有正整数时,此时使用无符号整数类型数据可以更好的利用计算机的储存空间,从而提高计算效率。
二.小数
1.C语言的小数形式
C语言的小数包含 整数位、小数点、小数位,三个部分。小数点部分是必须存在的;整数位和小数位部分至少存在一个。
2.C语言的指数形式(科学记数法)
C语言的指数形式包含数字、E/e与整数三个部分。如1.2E10,E/e部分代替科学记数法中的底数10,后面的整数为指数,即1.2*1010,指数可正可负。
打印小数:%f
打印指数:%E/%e
3.不精确性
在保存数据时,计算机都是将其以二进制进行处理的。人们在输入数据时,一般输入的是十进制。所以计算机进行运行时,要先将十进制转化为二进制在对其进行处理。大部分小数在进行二进制转换时,都无法实现精确转化,只能取近似值,导致计算机的小数是不精确的。
4.小数类型
在C语言中,按小数的储存方式,将小数分为单精度类型与双精度类型。
a.双精度类型
当储存的小数数值大,而且要求精度比较高时,可以使用双精度类型储存小数。双精度类型是浮点数的默认储存类型,使用double表示,一个双精度类型小数占八个字节。
双精度类型小数的取值范围为(-1.7 * 10-308) ~ (1.7 * 10308),可以精确保存到小数点后15~16位。
b.单精度类型
单精度类型小数占用的储存空间比较大,如果存储的小数数值比较小,就可以使用单精度类型存储小数。单精度类型使用float表示。一个单精度类型占4个字节。
注意:在单精度小数后要加后缀字母f/F。
单精度类型小数取值范围为(-3.4 * 10-38) ~ (-3.4 * 1038),且精确保存到小数点后6~7位。
三.文本数据
1.单个字符
最简单的文本数据,在编程中,单个字符又称字符常量。在书写单个字符时,要使用英文单引号括起来,如’a’。
2.转义字符
有些单个字符无法直接书写的,例如回车,为了解决这个问题,C语言引入了转义字符概念,。转义字符由反斜杠""和一个特定字母组成。
在编程中,有一些转义字符的使用率较高。
3.字符储存
计算机只能储存二进制数,无法直接储存字符。所以,要将字符转化为数字,再转化为二进制数,以实现字符的储存,这种转化关系被人们称为编码。
在C语言中,将字符存储为字符类型,并使用char表示。每个字符占1个字节。
4.多个字符
单个字符存储信息有限,大部分时候要使用多个字符进行存储信息。在C语言中,将一个或多个字符连起来构成的字符序列称为字符串,再输入字符串时,要使用英文双引号将字符串括起来,如"abcd".
为了标记字符串的结尾,系统会在每个字符串的结尾添加一个结束标识符,即。该标识符不会被输出,但会占一个字节。也就是说,如果字符串有五个字符,那么该字符串占用6个字节。
四.状态数据
数值数据主要用于各种计算,而文本数据主要用于存储某些信息。在这两者之间还有一类数据成为状态数据。状态数据表示一种状态,如灯的开与关。状态数据具备文本数据的特性,用于储存信息。例如:灯开着就意味着灯在发光,同时状态数据还具有是指数据的特性,可用于计算,例如:现在按一下开关,灯处于打开状态,再按一下开关,灯就处于关闭状态。
对于状态数据,C语言并没有提供特定的书写格式和存储方式。因此,状态数据必须被转化成数值数据或文本数据进行表示。为了方便计算,通常状态数据被转化为数值数据进行表示。例如,用以表述灯处于打开状态;0表述灯处于关闭状态。
五.变化的数据
在处理的数据中,除了不变的数据,还存在大量变化或未知的数据。这种数据是真实存在的,但是其具体的数值却是无法确定的。在C语言中,我们将这种称之为变量。
1.变量的表示
在C语言中,如果要处理的数据是确实存在的,但其值是不确定的,就要先给这个数据设置一个名字,用于指代这个数据。这样的数据称为变量,而设置的名称称为变量名。所以,变量只是指代的数据,而变量名只是数据的一个标签,并不会储存数据。
2.命名方式
在C语言中,设置的变量名也要遵循一定的规范。
a.命名规范
在C语言中,存在规范,并将符合这个规范的名称称为标识符。变量名就是一种标识符
标识符的命名规范:
标识符只能由字母,数字和下画线(_)组成。
标识符的第一个字符只能是字母或下画线。
标识符中的字母是要区分大/小写的,及标识符A和a会被计算机识别为两个标识符。
标识符的长度最长不得超过31个字符。
b.关键字
在C语言中,有一部分标识符被C语言本身使用了,并将这些标识符称之为关键字。
常见关键字:
c.命名建议
要让别的程序员尽量能认识。尽量做到“见名知意”。
3.声明变量
在C语言中,当引出一个变量名后,需要在程序中声明此变量。目的就是告知计算机,这个标识符指代的数据可以被使用了。声明变量包含两部分:数据类型 和 变量名。
指定数据类型是告知计算机该数据的存储方式。所以,根据数据类型不同,我们可以知道该数据的存储方式及取值范围。
在C语言中,基本数据类型: