




付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据在计算机的存储以二进制补码表示。原码补码各种数据类型及存储方式原码补码题目通常和类型转换放在一起使用。大端小端根据计算机系统的不同。基本类型的存储方式分为大端模式和小端模式。小端模式:如intel、arm。特点:低字节在低地址。大端模式:如powerpc。特点:高字节在低地址。思考:如何判断一个系统采用大端模式还是小端模式?转义字符,大端小端。变量的含义,左值:等号=的左边,代表的是一个地址例如:inta;a=3a代表变量a对应的内存的地址,该表达式的意思是:把整形常量3写在a对应的地址开始的四个字节里。右值:等号=的右边,代表的是一个地址里的值。intc;c=aa代表变量a的对应的内存的值。该表达式的意思是:把a对应的地址开始的4个字节的内容取出,赋给c对应的的地址开始的4个字节里变量的声明和定义,及初始化定义是一种特殊的声明,它创建了一个对象;声明简单地说明了在其他地方创建的对象的名字,它允许你使用这个名字。让我们回顾一下这两个术语:定义只能出现在一个地方确定对象的类型并分配内存,用于创建新的对象,例如:intmy_array[100][2][4];声明可以多次出现描述对象的类型,用于指代其他地方定义的对象(例如在其他文件里)例:externintmy_array[][2][4];只要记住下面的内容即可分清定义和声明:声明相当于普通的声明:他所说明的并非自身,而是描述其他地方创建的对象。定义相当于特殊的声明:它为对象分配内存。extern对象是声明,告诉编译器对象的类型和名字,对象的内存分配则在别处进行。(注:这里所说的对象与C++里的对象无关,这里的对象只是跟链接器有关的“东西”,比如函数和变量。)变量的初始化:在定义时(即为对象分配内存时)提供一个值。比如:inta=3;是初始化。下面第二条语句是赋值。比如:inta;a=3;这里区分开来是为了让大家明白,对于有些类型初始化和赋值操作不同。比如:数组inta[3]={1,2,3};可以。却不能这么做inta[3];a={1,2,3};结构体structA{inta,charb};structAa={12,’m’};可以。却不能这么做structAa;a={12,’m’};后面在指针和结构体时,会讲解复杂声明的分析。数的进制八进制十进制十六进制的表示只是书写方式的不同,在内存里都是二进制来表示的。比如常量:023190x13在机器里的表示相同。printf和scanf等getchar()putchar()基本输入输出函数printf和scanf练习自增自减运算符,自增自减的分析inta=3;intb;b=a++;基本运算符,运算符的优先级sizeofsizeof是一个运算符,用于判断变量类型占用多少字节在编译时其值就已经求出来,即根据类型来判断它占用的内存大小sizeof的使用练习inta=3,b=4;sizeofa+b=shorta=1;printf(“%d\n”,sizeofa++);a=char*p=NULL;printf(“%d\n”,sizeof(*p));常量:保存在只读区,值不能被修改。浮点数常量如:-1.03.14是以double型保存的。同时,由前面介绍的浮点数的存储方式可知,计算机里并不能精确地表示浮点数。例如3.14表示一个约等于3.14的浮点数。整数常量如-35、19是以int型保存的。字符常量如‘a’‘m’是以int型保存的。字符串常量是以字符’\0’结尾的char型数组保存的。例题:sizeof(1.0)=sizeof(1)=sizeof(‘a’)=sizeof(“ab”)=运算中类型转换及练习隐式类型转换:当操作符的操作数类型不一致是会发生类型转换。它负责把两个不同的操作数类型转换成同一种普通类型,转换后的类型通常就是结果类型。为什么有类型转换?整形提升:char、shortint和位段类型(无论signed或unsigned)以及枚举类型将被提升为int,前提是int能够完整地容纳原来的数据,否则将被转换为unsignedint。float类型在表达式中转换为double类型。若有整形和浮点数,则转换为double类型。隐式类型转换总是向着精度更高,长度更长的方向转换。ANSIC表示,如果编译器能够保证运算结果一致,也可以省略类型提升——这通常出现在表达式中有常量操作数的时候。比如:charc1,c2;c1=c1+c2;根据整形提升规则,先把每个变量的值提升为int的长度,再执行加法,然后再对运算符进行裁剪。如果两个char的加法不会发生溢出,那么实际执行时可以省略类型提升。又如,floatf1,f2;doubled;f1=f2*d;如果编译器可以确定用float进行运算的结果跟转换为double后进行运算的结果一样,那么也可以使用float来进行乘法运算。对于整形的赋值浮点数到整型的转换会去掉小数部分,即取整后赋给整形变量。对于运算里既有有符号也有无符号,首先看,有符号能否表示所有的无符号的值,若可以,则都变成有符号的类型,否则都变成无符号类型。同类型,有符号和无符号之间赋值,是内存拷贝,即内存内容一样,只是一个当做有符号数来解读,一个当做无符号数解读。inta=-1;unsignedintb=a;printf(“a%xb%x\n”,a,b);长的赋给短的类型,直接进行截断处理。短的赋给长的类型,根据短的类型是否为有符号的。若为有符号的,符号位扩展,赋给长类型。若为无符号的,高字节填0,赋给长类型的intmain(){inta=0x1280;charb=a;unsignedcharch=a;charc=128;unsignedchard=128;intm=c;intn=d;/*用printf打印上面的值*/ return0;}例如:intmain(){ inta=-20; unsignedcharch=6; if(a+ch>0) printf(“a+ch>0\n”); else printf(“a+ch<=0\n”); return0;}例如:intmain(){chara[1000];inti;for(i=0;i<1000;i++) a[i]=-1-i;printf(“%d\n”,strlen(a));return0;}强制类型转换,即显式类型转换。inta=3;doubleb=(doule)a;把a的值转换成double类型的格式然后赋值给b。注意:无论隐式还是显式类型转换都没有改变原类型(如这里的变量a)的内容。另一个会发生隐式类型转换的地方就是参数传递。在ANSIC中,若没有使用适当的函数原型(即声明),类型提升便会发生。在被调用函数的内部,提升后的参数被裁减为原先声明的大小。这就是为什么单个的printf格式符字串%d能适用于几个不同类型,shortchar或int而不论实际传递的是上述那种类型。因为对于%d,printf总是从内存中取4个字节,并按有符号整形输出。这是因为在缺少更多信息的情况下(printf的形参是可变参数),printf假定它是int类型的。因此对于longlong型,除非使用%ld,否则不能打印出正常的信息。----------------------------下次课-----------------------循环、分支跳转语句、逗号运算符和条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年陇南成县招聘城镇公益性岗位人员真题
- 产品供货方案及按时供货保证措施
- 难点解析人教版八年级物理上册第5章透镜及其应用定向测评试卷(含答案详解版)
- 综合解析人教版八年级上册物理声现象《噪声的危害和控制》专题测评试题(含详解)
- 2025年广东省建筑施工企业安全生产管理人员考试(专职安全生产管理人员C3类)(综合类)冲刺试题及答案
- 难点详解人教版八年级物理上册第5章透镜及其应用单元测试试题(含答案及解析)
- 考点解析-人教版八年级物理上册第5章透镜及其应用-透镜专项练习试卷(附答案详解)
- 考点攻克人教版八年级物理上册第5章透镜及其应用-透镜章节测评练习题(含答案详解)
- 解析卷-人教版八年级物理上册第4章光现象同步训练试卷(含答案详解版)
- 黄石中考实验考试题及答案
- 中医儿科学研究进展知到课后答案智慧树章节测试答案2025年春浙江中医药大学
- 美团客服接待流程
- 论《平凡的世界》中的苦难意识
- 质保监查培训课件
- 2024年货运代理合同货运代理详细协议
- 颈椎病术后康复训练
- (一模)韶关市2025届高三综合测试(一)语文试卷(含答案详解)
- 《信息安全技术 数据安全风险评估方法》
- 北京市昌平区2025届九年级物理上学期期中试题
- 钢结构施工合同范本
- 苏少版八年级下册美术:第8课-一目了然
评论
0/150
提交评论