C51第四课课件数据描述.ppt
《C51第四课课件数据描述.ppt》由会员分享,可在线阅读,更多相关《C51第四课课件数据描述.ppt(42页珍藏版)》请在三一办公上搜索。
1、1,本章知识点:keil环境安装,补丁,破解使用过程不同类型数据间的转换变量的作用域运算符和表达式,第四课 数据类型,2,隐式转换什么情况下发生运算转换-不同类型数据混合运算时赋值转换-把一个值赋给与其类型不同的变量时输出转换-输出时转换成指定的输出格式函数调用转换-实参与形参类型不一致时转换运算转换规则:不同类型数据运算时先自动转换成同一类型,1.不同类型数据间的转换,3,char ch;int i;float f;double d;,ch/i+f*d-(f+i),例1,4,一般形式:(类型名)(表达式)例:(int)(x+y)(int)x+y(double)(3/2)(int)3.6 说明
2、:强制转换得到所需类型的中间变量,原变量类型不变,例 main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:,精度损失问题,显式转换(强制转换),x=3.600000,i=3,5,2.变量的作用域,int x=2;int x=3;printf(x=%dn,x);printf(x=%dn,x);,2.1块结构:代码“块”指的是包含在一对大括号中的0行或多行代码序列。在块内可以对变量进行定义,其作用域仅限于块内。,x=3,x=2,6,2.变量的作用域,概述变量是对程序中数据的存储空间的抽象,编译或函数调用时为其分配内存单元,10
3、,程序中使用变量名对内存操作,7,2.变量的作用域,变量的属性数据类型:变量所持有的数据的性质(操作属性)存储属性存储器类型:寄存器、静态存储区、动态存储生存期:变量在某一时刻存在-静态变量与动态变量作用域:变量在某区域内有效-局部变量与全局变量变量的存储类型auto-自动型register-寄存器型static-静态型extern-外部型变量定义格式:存储类型 数据类型 变量表;,概述:变量是对程序中数据的存储空间的抽象,如:int sum;auto int a,b,c;register int i;static float x,y;,8,2.2变量作用域说明:变量只能在定义它或说明它的范围
4、内使用,而在该范围之外是不可见的。按作用域的大小可分为程序级、文件级、函数级及复合语句级(块级)。其中程序级的作用域最大,属于程序级作用域的有外部变量,在构成程序的所有文件中都是可见的。属于文件级的作用域的有外部静态变量,外部变量和外部静态变量合称为全局变量或全程变量。属于函数级、复合语句级的变量称为局部变量或内部变量。,2.变量的作用域,9,2.3自动型变量(局部变量):在函数内部定义的变量称为自动型变量。以关键字“auto”来定义。声明一个局部变量,不加任何修饰的话,它默认为auto,如char ch;=auto char ch;一般省略auto关键字。作用域:编译器为自动型变量动态分配存
5、储空间。它只存在于块内(由组成一个块)一旦离开该块,变量就消失,不存在。不同的函数内可以定义同样名字的变量。,2.变量的作用域,10,自动型变量特点:(1)在一个函数内部定义的变量,只能在函数内部(块内部)使用。(2)在主函数内部定义的变量也是局部变量。(3)形式参数是局部变量。(4)局部变量在函数被调用的过程中占有存储单元。(5)不同函数中可以使用同名变量。在不同的作用域内,可以对变量重新进行定义。,2.变量的作用域,11,2.4外部型变量:在任何函数外部定义的变量称为外部型变量,它可以被一个程序中所以函数所引用。作用域:外部变量实际是“全局型”,它的作用域是整个程序。主要用来做函数之间的数
6、据通信。,2.变量的作用域,12,2.变量的作用域,2.4外部型变量特点(1)在函数外部定义,其作用域是变量定义位置至整个程序文件结束。(2)使用外部变量,可增加函数间数据联系的渠道。全局变量可以将数据带入在作用域范围内的函数,也可以将数据带回在作用域范围内的其它函数。使用全局变量可让函数带回多个值,但一定要注意全局变量传递数据是数据传递的后门。全局变量在程序中任何地方都可以更新,使用全局变量会降低程序的安全性。(3)使用程序中非本程序文件的外部变量,也要对使用的外部变量进行申明(extern)。(4)局部变量如与外部变量同名,则在局部变量的作用域内,外部变量存在,但不可见,外部变量的作用被屏
7、蔽。(5)全局变量在程序运行过程中均占用存储单元。(6)在编程时,原则上尽量少用全局变量;能用局部变量,不用全局变量,要避免局部变量全局化。,13,2.变量的作用域,2.5静态变量:静态变量的类型说明符是static。静态变量是属于静态存储方式,编译器为其分配固定的存储空间。外部变量前由 static加以定义后成为静态外部变量,或称静态全局变量。对于自动变量,它属于动态存储方式。但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。1.静态局部变量在局部变量的说明前再加上static说明符就构成静态局部变量。例如:static int a,b;static fl
8、oat array5=1,2,3,4,5;2.静态全局变量全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。这两者在存储方式上并无不同。一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效。,14,2.变量的作用域,静态局部变量具有以下特点:(1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。但退出该函数后,尽管该变量还继续存在,但不能使用它。(2)对基本类型的静态局部变量若在说明时未赋以初值,则系统
9、自动赋予0值。而对自动变量不赋初值,则其值是不定的。当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜,15,2.变量的作用域,静态全局变量具有以下特点:(1)由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。因此static 这个说明符在不同的地方所起的作用是不同
10、的。应予以注意。,16,2.变量的作用域,局部变量默认为auto型register型变量个数受限,sfr,sbit。局部static变量具有全局寿命和局部可见性局部static变量具有可继承性extern不是变量定义,可扩展外部变量作用域,17,2.4 运算符和表达式,18,运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型,学习运算符应注意,19,基本算术运算符:+-*/%结合方向:从左向右优先级:-*/%-+-(2)(3)(4)说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据,例 5/2=-5/2.0=,例 5%2=-5%2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 第四 课件 数据 描述

链接地址:https://www.31ppt.com/p-6502476.html