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

    第8章 变量的作用域和存储类别.ppt

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

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

    第8章 变量的作用域和存储类别.ppt

    第第8章章 变量的作用域和存储类别变量的作用域和存储类别考试类型:笔试考试类型:笔试+上机上机所占分值:笔试所占分值:笔试8 8分分8.1 变量的作用域变量的作用域指在源程序中定义变量的位置及其能被读指在源程序中定义变量的位置及其能被读写访问的范围写访问的范围分为分为局部变量局部变量(Local VariableLocal Variable)全局变量全局变量(Global Variable)(Global Variable)局部变量局部变量局部变量局部变量在语句块内定义的变量在语句块内定义的变量形参也是局部变量形参也是局部变量定义时不会自动初始化,除非程序员指定初值定义时不会自动初始化,除非程序员指定初值进入语句块时获得内存,仅能由语句块内语句进入语句块时获得内存,仅能由语句块内语句访问,退出语句块时释放内存,不再有效访问,退出语句块时释放内存,不再有效 并列语句块各自定义的同名变量互不干扰并列语句块各自定义的同名变量互不干扰 P127 例例8-1 分析以下程序的输出结果。分析以下程序的输出结果。#include int func();main()int a=1;func();printf(a=%dn,a);int func()int a;a=2;printf(a=%dn,a);a=2a=1全局变量全局变量全局变量全局变量在所有函数之外定义的变量在所有函数之外定义的变量在程序中定义它的位置以后都有效在程序中定义它的位置以后都有效自动初始化为自动初始化为0 0从程序运行起即占据内存,程序运行过程中可随时从程序运行起即占据内存,程序运行过程中可随时访问,程序退出时释放内存访问,程序退出时释放内存 在定义点之前或在其他文件中引用,应该进行如下在定义点之前或在其他文件中引用,应该进行如下声明:声明:extern extern 类型名类型名 变量名变量名;使函数之间的数据交换更容易,也更高效使函数之间的数据交换更容易,也更高效但是并不推荐使用但是并不推荐使用因为谁都可以改写全局变量,所以很难确定是谁改因为谁都可以改写全局变量,所以很难确定是谁改写了它写了它尽量少用全局变量。不得不用时,要严格控制对它的尽量少用全局变量。不得不用时,要严格控制对它的改写改写P128 例例8-2 分析以下程序的输出结果。分析以下程序的输出结果。#include int a=3,b=5;/*a、b为全局变量为全局变量*/max(int a,int b)/*a、b为局部变量为局部变量*/int c;c=ab?a:b;return c;main()int a=8;/*a为局部变量为局部变量*/printf(%dn,max(a,b);此此a a为局部变量为局部变量8 8,全局变量被屏蔽。全局变量被屏蔽。8.2 变量的存储类别变量的存储类别指数据在内存中存储的方式,即编译器为指数据在内存中存储的方式,即编译器为变量分配内存的方式,它决定变量的生存变量分配内存的方式,它决定变量的生存期期动态存储动态存储根据需要临时分配存储空间,离开即释放根据需要临时分配存储空间,离开即释放静态存储静态存储在程序运行期间分配固定的存储空间不释放在程序运行期间分配固定的存储空间不释放程序区程序区静态存储区静态存储区动态存储区动态存储区形参、自动形参、自动变量、函数变量、函数调用的现场调用的现场等等全局变量、全局变量、静态变量静态变量自动变量自动变量(auto)“自动自动”体现在体现在进入语句块时自动申请内存,退出时自动释放进入语句块时自动申请内存,退出时自动释放内存内存 动态局部变量动态局部变量标准定义格式标准定义格式auto auto 类型名类型名 变量名变量名;缺省的存储类型缺省的存储类型不初始化时,值是不确定的不初始化时,值是不确定的静态变量(静态变量(static)一个函数的内部变量在函数退出后失效。再一个函数的内部变量在函数退出后失效。再次进入函数,变量值重新初始化次进入函数,变量值重新初始化把此变量定义为把此变量定义为staticstatic,则变量的值可以保存,则变量的值可以保存到下次进入函数到下次进入函数static static intint i;i;静态变量和全局变量都是静态存储类型静态变量和全局变量都是静态存储类型自动初始化为自动初始化为0 0从静态存储区分配,生存期为整个程序运行期间从静态存储区分配,生存期为整个程序运行期间但作用域不同但作用域不同P130 例例8-4 静态变量的应用静态变量的应用#include func(int a)int b=0;static c=3;a=c+,b+;return a;main()int a=2,i,k;for(i=0;i2;i+)k=func(a+);printf(%dn,k);4寄存器变量(寄存器变量(register)u寄存器寄存器CPUCPU的内部容量很有限但速度极快的存储器的内部容量很有限但速度极快的存储器u使用频率比较高的变量声明为使用频率比较高的变量声明为registerregister ,可以,可以使程序更小、执行速度更快使程序更小、执行速度更快register register 类型名类型名 变量名变量名;register register intint i;i;u现代编译器有能力自动把普通变量优化为寄现代编译器有能力自动把普通变量优化为寄存器变量,并且可以忽略用户的指定,所以存器变量,并且可以忽略用户的指定,所以一般无需特别声明变量为一般无需特别声明变量为registerregister

    注意事项

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

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




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

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

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

    收起
    展开