预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共38页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第3章数据类型、运算符与表达式3.1C语言的数据类型3.2常量和变量(1)变量名。每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。变量名实际上代表的是一个符号地址。通常用小写。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名找到相应的内存存储单元来引用变量的值。 注意:变量和符号常量的本质区别。3.标识符的命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。 如student_name和student_number的前8个字符相同,有 的系统认为这两个变量,是一回事而不加区别。 (3)关键字是由C语言规定的具有特定意义的字符串。用户定义的标识符不应与关键字相同。关键字见附录II. 注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。 在C语言中,变量名total与变量名TOTAL、ToTaL、tOtAl等是不同的变量。 标识符命名的良好习惯──见名知意: 所谓“见名知意”是指,通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、salary/gz(工资)。 4.变量的定义与初始化 在C语言中,要求对所有用到的变量,必须先定义、后使用(1.编译时分配存储单元的依据,2.不同类的变量所允许的操作集也不同);称在定义变量的同时进行赋初值的操作称为变量的初始化。 (1)变量定义的一般格式 [存储类型]数据类型变量名[,变量名2……]; 例如,floatradius,length,area; (2)变量初始化的一般格式 [存储类型]数据类型变量名[=初值][,变量名2[=初值2]……]; 例如,floatradius=2.5,length,area; 3.3整型数据3.3整型数据2.占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。在16位操作系统中,一般用2字节表示一个int型变量,且long型(4字节)≥int型(2字节)≥short型(2字节)。 显然,不同类型的整型变量,其值域不同。占用内存字节数为n的(有符号)整型变量,其值域为:-2n*8-1~(2n*8-1-1);无符号整型变量的值域为:0~(2n*8-1)。例如,PC机中的一个int型变量,其值域为-22*8-1~(22*8-1-1),即-32768~32767;一个unsigned型变量的值域为:0~(22*8-1),即0~65535。3.3.2整型常量 1.三种表示形式 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。 (3)十六进制(以数字0+小写字母x开头)。例如 0x36。 2.分类 (1)基本整型。在16位机中,用2字节存储,其数据范围与int型变量一样。 (2)长整型(在数值后面加“L(l)”)例如,123l、315L等。 (3)无符号型(在数值后面加“U(u)”)例如,123u、315U等。 3.类型匹配规则 类型匹配规则为:一个整型常量,可以赋给能容纳下其值的整型变量。 例如,其值在-215--(215-1)的整型常量,可以赋给int型变量和longint型变量;其值在-231--(231-1)的整型常量,就只能赋给longint型变量。 3.4实型数据3.4.3实型数据在内存中的存放形式 如单精度数占四个字节,分别用来存储尾数与指数部分,尾数部分占的位数越多,精度越高,指数部分占的位数越多,则表示数的范围越大。 3.4.4实型数据有限的精度带来的误差 如1.0/3*3在数学上结果等于1 而用C程序运算的结果则不等于1。 实际编程时假如用1.0/3*3==1来作为条件判断或选择控制就会出问题 解决方法:可以用fabs(1.0/3*3-1)<=1e-6来代替 3.5字符型数据[例3.1] main(){printf(“\x4F\x4B\x21\n”); /*等价于printf(“OK!\n”);*/printf(“\x15\xAB\n”);} 程序运行结果如下:OK!§½ 3.5.2字符变量 字符变量的类型关键字为char,一般占用1字节内存单元。 1.变量值的存储字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。例如, charch1,ch2; /*定义两个字符变量:ch1,ch2*/ ch1=’a’;ch2=’b’;/*给字符变量赋值*/ 附: A