第二章:数据类型、运算符、表达式
C语言的数据类型
在第一课中,我们已经看到,程序中使用的各种变量都要事先解释,即先解释,后使用。变量的描述可以包括三个方面:
数据类型
存储类型
作用域
本课只介绍数据类型的描述。其他解释将在后续章节中介绍。所谓数据类型,是按照性质、表示方式、存储量空和被解释量的结构特征来分类的。在C语言中,数据类型可以分为四类:基本数据类型、构造数据类型、指针类型和空类型。
1.基本数据类型
基本数据类型最重要的特征是它们的值不能再分解成其他类型。也就是说,基本数据类型是不言自明的。
2.构造数据类型构造数据类型
根据已经定义的一种或多种数据类型。也就是说,一个构造类型的值可以分解成几个“成员”或“元素”。每个“成员”都是基本数据类型或构造类型。在C语言中,有以下几种构造类型:
,数组类型
,结构类型
,联合类型。
3.指针类型
指针是一种特殊而重要的数据类型。它的值用于表示一定内存量中的地址。虽然指针变量的值类似于整数量,但这两类量是完全不同的,不能混淆。4.空 Type通常在调用函数值的时候会返回一个函数值给调用者。返回的函数值有一定的数据类型,应该在函数定义和函数描述中说明。例如,在例子中给出的max函数的定义中,函数头为:int max(int a,int b);“int”类型说明符意味着这个函数的返回值是一个整数。在另一个例子中,使用了库函数sin。因为系统规定其函数的返回值是双精度浮点,赋值语句s = sin(x);s也必须是双精度浮点类型,以便与sin函数的返回值保持一致。所以在解释部分,S被描述为双精度浮点型。但是,也有一种函数在被调用后不需要将函数值返回给调用者。这类函数可以定义为“空类型”。类型说明符为空。在第五章中,将详细介绍该功能。在本章中,我们首先介绍基本数据类型中的整型、浮点型和字符型。其他类型将在后续章节中介绍。
对于基本数据类型,根据其值是否可以改变,可以分为常量和变量。在程序执行过程中,其值不变的量称为常数,其值可以变化的量称为变量。它们可以结合数据类型进行分类。比如可以分为整数常量,整数变量,浮点常量,浮点变量,字符常量,字符变量,枚举常量,枚举变量。在程序中,常量可以直接引用,不需要解释,而变量在使用前必须解释。
整数
整数量包括整数常数和整数变量。整数常数就是整数常数。在C语言中,使用的整数常量有三种:八进制、十六进制和十进制。
整数常数
1.八进制整数常量八进制整数常量必须以0开头,即0作为八进制数的前缀。数字值为0 ~ 7。八进制数通常是无符号数。
下列数字是合法的八进制数:
015(十进制130) 03A2(十进制65) 017777(十进制65535)
下列数字不是合法的八进制数:
256(无
2.十六进制整数常量
十六进制整数常量的前缀是0x或0X。其数字值为0~9、A~F或a ~ f,
以下数字为合法的十六进制整数常量:
0X2A(十进制42) 0XA0(十进制160) 0XFFFF(十进制65535)
以下数字为非法的十六进制整数常量:
5A(无前缀0X)
3.十进制整数常量
十进制整数常量没有前缀。它的数字是0 ~ 9。
下列数字是合法的十进制整数常量:
237 -568 65535 1627
下列数字不是合法的十进制整数常量:
023(无前导0) 23D(包括非十进制数字)
在程序中,根据前缀来区分各种二进制数。所以,写常数的时候,不要把前缀弄错,导致结果不正确。4.整数常量的后缀在16位的字机上,基本整数的长度也是16位,所以表示的数字范围也是有限的。十进制无符号整数常量的范围是0 ~ 65535,有符号数是-32768 ~+32767。八进制无符号数的表示范围是0 ~ 0177777。十六进制无符号数的表示范围是0x0 ~ 0xffff或0x0 ~ 0xffff。如果使用的数字超出上述范围,则必须用长整数表示。长整数用后缀“L”或“L”表示。例如:
十进制长整型常量158L(十进制158) 358000L(十进制-358000)
八进制长整型常量0X15L(十进制10) 077L(十进制63) 0200000L(十进制是0XA5L(十进制165) 0X10000L(十进制65536)
长整型158L和基本整型在值上没有区别但对于158L,因为是长整数,C编译系统会分配4个字节给它存储空。对于158,因为是基本整数,所以只分配了2个字节的存储空。所以要注意操作和输出格式,避免出错。无符号数也可以用后缀来表示。整数常量的无符号数的后缀是“u”或“u”。比如358u,0x38au,235lu都是无符号数。前缀和后缀可以同时用来表示不同类型的数字。例如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。
0条评论