文档介绍:第三章数据类型、运算符与表达式
C的数据类型
整型
基本类型字符型单精度型
实型(浮点型)
枚举类型双精度型
数据类型数组类型
构造类型结构体类型
共用体类型
指针类型
空类型
C语言中数据有常量与变量之分,它们分别属于以上这些类型。
整型
基本类型字符型单精度型
实型(浮点型)
空类型双精度型
数据类型数组类型
结构体类型
构造类型共用体类型
枚举类型
指针类型
我们可以把基本数据类型按照一定的规则构造成复杂的数据类型,如基本类型的数组,含有各种类型的结构和联合,也是可以构造成指向各种数据的类型的指针。还可以构造成程序设计设计中需要用到的表、树、栈等数据结构。
常量与变量
常量和符号常量
一个量有计算机运行过程中其值不能改变的称为常量,根据常量的类型有整型常量、实型常量、字符常量等。
例:3 ‘c’
例:#define PI
#define n 100
使用符号常量的优点:
(1) 含义清楚
(2) 修改方便
变量
相对于常量来说变量在计算机运行时是可以改变的,C语言的变量与常量一样有整型变量、实型变量、字符变量等。由于变量的值在运行其间可以改变因此需为变量在内存中开辟一块存储空间存放变量的值以便变量的存取。其存储空间在内存中也有相应的地址,但如果用变量的地址作为存取数据的依据那么存取变量时会很不方便,也不太直观。C语言和其它高级语言一样是用标识符来表示变量。
C语言的标识符规定:
是以字母或下划线开头由数字、字母和下划线组成的与保留字不同的符号串。
例:ma pi price student02 a3214 _s
例:1ma int double
标识允许的最大长度各版本不同,如Turbo C规定长度为32个,即前32个有效。
变量也有类型,变量的类型既决定了该变量的取值范围,也决定了在该变量上所能执行的运算,所以C语言规定所有变量必需在使用前加以说明“先定义,后使用”
C语言中变量说明形式:
类型名变量名,变量名,……变量名;
例:int lower,upper,step;
例:float x,y;
例:char c,a[100];
使用变量与标识符应注意:
1. 在程序的同一作用域中,一个标识符只能说明一次。
2. C语言的标识符是区分大小写的,即大小写字母为不同的符号。
3. 标识符虽然不能与保留字相同但可以与标准标识相同,当标准标识符重新定义后,会失去原来的含义。
4. 虽然用标识符标识变量,但标识符与变量的意义不同:
(1) 标识符是描述变量名的一种手段。
(2) 一个标识符可以标识多个变量,一个变量也可以有多个变量标识。
5. C语言中的变量与数学中的变量的意义不同:
(1) C语言中的变量瞬时只有一个值,而数学中的变量没有一定值。
(2) C语言中的变量的值是离散的,而数学中的变量是连续的。在C语言中可以有x=x+1,而数学中不能有x=x+1。
例:int i;
float i;
例:char sin;
例:{int i;
{float i;
……
}
}
例:int Ma;
float ma;
整型数据
整型常量
虽然人们常用的是十进制数但计算机内都是二进制数的形式,八进制和十六进制是可以来表示二进制数的,因此在C语言中还可以使用八进制和十六进制。
(1) 十进制整数由正负号和0-9十个数符组成的,逢十进一,借一当十。C语言的十进制整数与普通格式相同,如:123 -49 7
(2) 八进制整数由正负号和0-7八个数符组成的,逢八进一,借一当八。C语言的八进制整数是以0开头(0在正负号后)的数,如:0123 -012。但080不是八进制数
(3) 十六进制整数由正负号和0-9、a-f十六个数符组成的,逢十六进一,借一当十六。(0x在正负号后,表示十六进制数) 0x123 -0xa都是十六进制数
整型变量
1. 整型数据在内存中的存放形式
无论是十进制、八进制还是十六进制数在计算机内部都是有二进制形式存放的,它的存放形式关系到数的内部转换问题,因此要对数的内部形式有所了解。
一个整数在计算机内的长度不是一定的,如turbo C是二个字节,而VC++是四个字节,现以二个字节为例。正数的最高位表示正负号,用0表示正,1表示负。其余15位表示数,如:int i=10;其内部形式为:
但负数怎样在计算机中表示是需要考虑的问题,一般微型机中以所谓补码形式的存放,补码的正数形式与原码相同,而负数的补码是该数的绝对值求补,求补的方法是求反加1或者是最后一个1前面求反。
例:int i=-10; i的内部形式是: