程序设计基础第3章补充知识汇总.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计基础第3章补充知识汇总

程序设计基础第三章补充知识汇总 关于各类型常量的说明: (1)整型默认为signed int型,后加U或L可改变类型;有十/八/十六进制三种写法 (2)实型默认为double型,后可加f指定为float型,分小数形式和指数形式两种;指数形式表示时E或e前不能空,e后为整数 (3)字符型常量默认为signed char;分普通字符和转义字符两种.具体有哪些转义字符看书自学。务必注意字符型常量是用单引号括起来的单个字符,如char c=’a’,a=‘a’,不加单引号错;此外,字符型变量的内存单元中实际存放字符的ASCII码,如上例存97。正是由于字符型数据实际对应一整数,故字符型与整型有时可通用:int i=‘a’;char c=97;int j=‘a’-32; char b=c-32; (4)字符串常量是””括起来的串,末位自动添加结束符’\0’,务必区分’A’与”A” (5) -32768U与-32768在寄存器中存储结构一样,均为FF FF 80 00。区别在于,设有Unsigned x;则x=-32768会有警告,而x=-32768U无警告 符号常量:在编译阶段直接被替换为所代表的常数,不为其分配内存,不能赋值。符号常量定义语句后无分号 变量:变量实际对应内存中一个内存块,块大小由变量类型决定,根据变量名可找到对应的内存块;为变量赋值就是根据变量名找到相应内存块,之后将数据(位于CPU寄存器)写入其中;取变量的值就是通过变量名找到相应的内存块,从其中读取数据到CPU寄存器。注意变量必须先定义后使用; 一次可定义多个同类型的变量;使用前通常赋初值,可定义同时赋值(如int i=0) 自动类型转换:某些类型的数据一旦参与运算(即进入CPU寄存器时),或者不同类型的数据进行混合运算时,数据类型就会发生自动转换,称之为自动类型转换 转换规则:范围小到大,等值转换(不同编译器规则不尽同,VC如下) char与short进入CPU时自动转换为等值int;【符号位扩展】 unsigned char/short进CPU自动转为unsigned int;【高位补零】 float进CPU直接转为double;【指数部分与尾数部分分别扩充】 无论哪种整型与double型混合运算,整型均转为等值double型 其余:类型长短不一时,以较长的为准,长度相同时,有符号的转化为无符号的,如32767+1L结果32768L 例:234-‘b’+26.5 强制类型转换:对变量进行强制类型转换时只是在CPU寄存器中对变量值作临时转换,变量类型及其在内存中的数据保持不变,如以下语句执行后x仍为float型,值仍然为3.5:float x=3.5; int i=(float)x; 注:假设float x=3.5,y=3.5;则(int)x+y为实数值6.5;而(int)(x+y)值为7 格式输出函数中格式控制符说明 正常情况:格式控制符%d用于输入输出有符号整型数,%u用于无符号整型数, %X或%O以十六或八进制输出各类整型;%f用于float,%lf用于double, %c用于char 原理说明:输出值先进入寄存器(可能要扩充),以%c输出则截取寄存器最末一字节输出其对应的字符;以%d输出意味着将寄存器中的数据当作signed int的补码,输出此补码对应的真值;以%u输出意味着将寄存器中的数据当作一个unsigned int,直接转换为十进制数后输出;以%X输出则将寄存器中的二进制数从低到高四位合一位输出,高位零省略;以%O则三位合一位输出 例:以下为VC下分析, 寄存器中扩充成int或unsigned int后占4字节,TC下扩充成int或unsigned int后占2字节。 short a; unsigned short c; short e; a=100; /*R(100)=0x00 00 00 64; M(a)=0x00 64*/ e=50000; /*R(50000)=0x00 00 C3 50; M(e)=0xC3 50*/ c=a=e; /*R(e)=0x ff ff C3 50;M(a)=0xC3 50*/ /*R(a)=0xFF FF C3 50;M(c)=0xC3 50*/ printf(“%d\n”,a); /*R(a)= 0xFF FF C3 50;输出-15536*/ printf(“%u \n”,c); 输出50000*/ printf(“%x\n”,a);//R(a)=0xFFFFC350,VC:ffffc350,TC:C350 printf(“%o \n”,c); /*R(c)=0x00 00 C3 50; 输出141520*/ 针对算术运算符: (1)除运算符/:分子分

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档