欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第十二章 变量的作用域和存储类精选PPT.ppt

    • 资源ID:88374830       资源大小:1.41MB        全文页数:16页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第十二章 变量的作用域和存储类精选PPT.ppt

    第十二章 变量的作用域和存储类第1页,此课件共16页哦v变量的属性l数据类型:变量所持有的数据的性质(操作属性)l存储属性u存储器类型:寄存器、静态存储区、动态存储区u生存期:变量在某一时刻存在-静态变量与动态变量u作用域:变量在某区域内有效-局部变量与全局变量v变量的存储类型lauto -自动型lregister-寄存器型lstatic -静态型lextern -外部型v变量定义格式:存储类型 数据类型 变量表;第十二章 变量的作用域和存储类概述v变量是对程序中数据的存储空间的抽象如:int sum;auto int a,b,c;register int i;static float x,y;第2页,此课件共16页哦局部变量与全局变量v局部变量-内部变量l定义:在函数内定义,只在本函数内有效l说明:umain中定义的变量只在main中有效u不同函数中同名变量,占不同内存单元u形参属于局部变量u可定义在复合语句中有效的变量u局部变量可用存储类型:auto register static (默认为auto)例 复合语句中变量#define N 5main()int i;int aN=1,2,3,4,5;for(i=0;iN/2;i+)int temp;temp=ai;ai=aN-i-1;aN-i-1=temp;for(i=0;i 应尽量少使用全局变量,因为:Y全局变量在程序全部执行过程中占用存储单元Y降低了函数的通用性、可靠性,可移植性Y降低程序清晰性,容易出错l外部变量说明:extern 数据类型 变量表;l外部变量定义与外部变量说明不同l若外部变量与局部变量同名,则外部变量被屏蔽l外部变量可用存储类型:缺省 或 static第4页,此课件共16页哦float max,min;float average(float array,int n)int i;float sum=array0;max=min=array0;for(i=1;imax)max=arrayi;else if(arrayiy?x:y;return(z);main()extern int a,b;printf(max=%d,max(a,b);int a=13,b=-8;运行结果:max=13extern int a,b;int max()int z;z=ab?a:b;return(z);main()printf(max=%d,max();int a=13,b=-8;第6页,此课件共16页哦int a=3,b=5;max(int a,int b)int c;c=ab?a:b;return(c);main()int a=8;printf(max=%d,max(a,b);例 外部变量与局部变量同名运行结果:max=8第7页,此课件共16页哦int i;main()void prt();for(i=0;i5;i+)prt();void prt()for(i=0;i5;i+)printf(“%c”,*);printf(“n”);例 外部变量副作用运行结果:*第8页,此课件共16页哦动态变量与静态变量v存储方式l静态存储:程序运行期间分配固定存储空间l动态存储:程序运行期间根据需要动态分配存储空间v内存用户区程序区静态存储区动态存储区全局变量、局部静态变量形参变量局部动态变量(auto register)函数调用现场保护和返回地址等v生存期l静态变量:从程序开始执行到程序结束l动态变量:从包含该变量定义的函数开始执行至函数执行结束第9页,此课件共16页哦变量存储类型静态动态存储方式程序整个运行期间函数调用开始至结束生存期编译时赋初值,只赋一次每次函数调用时赋初值自动赋初值0或空字符不确定未赋初值静态存储区动态区存储区寄存器局部变量外部变量作用域定义变量的函数或复合语句内本文件其它文件u局部变量默认为auto型uregister型变量个数受限,且不能为long,double,float型u局部static变量具有全局寿命和局部可见性u局部static变量具有可继承性uextern不是变量定义,可扩展外部变量作用域register局部staticauto外部static外部型存储类别第10页,此课件共16页哦例 文件file1.cint a;main().f2;.f1;.f1()auto int b;f2;.f2()static int c;C作用域b作用域a作用域mainf2f1mainf1f2maina生存期:b生存期:c生存期:第11页,此课件共16页哦例 auto 变量的作用域main()int x=1;void prt(void);int x=3;prt();printf(“2nd x=%dn”,x);printf(“1st x=%dn”,x);void prt(void)int x=5;printf(“3th x=%dn”,x);运行结果:3th x=52nd x=31st x=1x=1作用域x=1作用域x=3作用域x=5作用域第12页,此课件共16页哦main()void increment(void);increment();increment();increment();void increment(void)int x=0;x+;printf(“%dn”,x);例 局部静态变量值具有可继承性运行结果:1 1 1main()void increment(void);increment();increment();increment();void increment(void)static int x=0;x+;printf(“%dn”,x);运行结果:1 2 3静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值第13页,此课件共16页哦例 变量的寿命与可见性#include int i=1;main()static int a;register int b=-10;int c=0;printf(-MAIN-n);printf(i:%d a:%d b:%d c:%dn,i,a,b,c);c=c+8;other();printf(-MAIN-n);printf(i:%d a:%d b:%d c:%dn,i,a,b,c);i=i+10;other();other()static int a=2;static int b;int c=10;a=a+2;i=i+32;c=c+5;printf(-OTHER-n);printf(i:%d a:%d b:%d c:%dn,i,a,b,c);b=a;-Main-i:1 a:0 b:-10 c:0-Other-i:33 a:4 b:0 c:15-Main-i:33 a:0 b:-10 c:8-Other-i:75 a:6 b:4 c:15全局i1main:a0b:-10registermain:c0静态存储区动态存储区other:a2other:b0other:c10843315443other:c10675156第14页,此课件共16页哦main()void gx(),gy();extern int x,y;printf(“1:x=%dty=%dn”,x,y);y=246;gx();gy();void gx()extern int x,y;x=135;printf(“2:x=%dty=%dn”,x,y);int x,y;void gy()printf(“3:x=%dty=%dn”,x,y);例 用extern扩展外部变量作用域运行结果:1:x=0 y=02:x=135 y=2463:x=135 y=246第15页,此课件共16页哦例 引用其它文件中的变量,输出ab和a的m次方int a;main()int power(int n);int b=3,c,d,m;printf(Enter the number a and its power:n);scanf(%d,%d,&a,&m);c=a*b;printf(%d*%d=%dn,a,b,c);d=power(m);printf(%d*%d=%d,a,m,d);extern int a;int power(int n)int i,y=1;for(i=1;i=n;i+)y*=a;return(y);第16页,此课件共16页哦

    注意事项

    本文(第十二章 变量的作用域和存储类精选PPT.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开