- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
3、变量的分类 如果把变量与数据类型结合起来分类,变量可分为整型变量、浮点变量(实型变量)、字符变量。(1)整型变量系统根据声明变量时所指定的数据类型为变量分配存储空间,使用整型变量时要注意不能超过变量的取值范围。如果定义了一个短整型变量i:shorti=10;则i在内存中的二进制表示如下:0000000000001010C语言中的数值在计算机中是以补码形式表示的:①正数的补码和原码相同;②负数的补码:将该数的绝对值的二进制形式按位取反再加1。?例2-3:整型数据的溢出。#includestdio.hvoidmain(){shortx=32767,y;y=x+1;printf(x=%d,y=%d\n,x,y);}y=-32768的原因是数据溢出,超过整型数据的范围(2)实型变量 实型变量分为个单精度型和双精度型变量,两者之间的区别在于后者的有效位数比前者的多、精度更高。实型数据一般占4个字节(32位)内存空间,按指数形式存储,分为小数部分(尾数)和指数部分(阶码)。对于一个无穷的小数,由于存储空间有限,计算机无法表示出小数点后面所有的值,只能表示实际值的近似值。因此,使用实型变量时,单精度实型变量的有效位数是7位,双精度是16位,但在vc6.0中小数位取6位其余作四舍五入处理。实型数据一般占4个字节(32位)内存空间,按指数形式存储,分为小数部分(尾数)和指数部分(阶码)。实数3.14159在内存中的存放形式:+0.3141591数符小数部分指数部分因此,使用实型变量时,可能会有误差。实型变量的有效位数越多,与实际值就会越接近,精度就越高。?例2-4:对比float型数据和double型数据。#includestdio.hvoidmain(){floatx=5555.55555;doubley=5555.555555555555;printf(x=%f\n,x);printf(y=%lf\n,y);}单精度的有效位数是7位,包括整数部分与小数位而双精度保留6位有效小数程序运行结果为:x=5555.555664y=5555.555556【例2-5】实型数据的舍入误差。#includestdio.hvoidmain(){floata=123456789.0,b;b=a+1;printf(a=%f\n,a);printf(b=%f\n,b);}程序运行结果为:a=123456792.000000b=123456792.000000分析:因为float类型只能保证7位有效数字,给a赋值时只能保证前7位是准确的,后面几位是无效数字,把1加在无效数字上,是不会发生任何变化。(3)字符型变量字符型变量用来存放字符常量,一个字符变量在内存中占一个字节,所以只能放一个字符。字符型变量的类型说明符为char,如chara;将一个字符常量放到一个字符变量中,实际上不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。因此,字符型数据和整型数据之间可以通用。例如:chara=‘A’;与chara=65;是等价的。因为字符‘A’在计算机中的存储形式是与整数65一样。一个字符数据既可以以字符形式输出,也可以以整数形式输出。【例2-6】大写字母转换为小写字母。#includestdio.hvoidmain(){chara=X,b=Y;a=a+32;b=b+32;printf(%c,%c\n,a,b);}程序运行结果为:x,y分析:大写字母的ASCII码值和小写字母的ASCII码值相差32,大写字母加32就是小写字母,将其以字符形式输出即可得到小写字母。2.4运算符与表达式运算符在C语言进行数据加工,执行程序代码的运算。C语言提供了以下十种运算符:(1)算术运算符:+-*/%++--(2)关系运算符:====!=(3)逻辑运算符:||!(4)位操作运算符:|~^(5)赋值运算符:=+=-=*=/=%= =|=^===(6)条件运算符:?:(7)逗号运算符:,(8
文档评论(0)