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

    (39)--6.6 变量的生存期C语言程序设计基础.ppt

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

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

    (39)--6.6 变量的生存期C语言程序设计基础.ppt

    6.6 变量的生存期量的生存期6.6.1变量的作用域与生存期量的作用域与生存期变量的生存期变量的作用域与生存期C语言变量的作用域变量的作用域 是指变量的有效范围,即在程序中哪些语句可以用它。分为局部变量和全局变量。变量的生存期变量的生存期 是指变量被系统分配单元到被回收的时间。在生存期内,变量可能处于作用域中,也可能不在作用域中。变量的生存期变量的作用域与生存期C语言案例案例1 1:编写编写一一个函数,个函数,求两个整数的最大公约数求两个整数的最大公约数和和最小公倍数,最小公倍数,在主函数中在主函数中分别输出最大公约数和最小公倍数分别输出最大公约数和最小公倍数。(将表示最大公约数(将表示最大公约数和最小公倍数和最小公倍数的变量定义为全局变量)的变量定义为全局变量)变量的生存期变量的作用域与生存期C语言变量的生存期变量的作用域与生存期C语言局部变量局部变量在函数内定义的变量(包括形参)在函数内定义的变量(包括形参)作用范围:作用范围:本函数内部本函数内部示例:示例:float f1(int a)int b,c;a,b,c只在只在f1中有效中有效 float f2()char c;c只在只在f2中有效中有效 main()int i,j;i,j只在只在main中有效中有效局部变量局部变量定义在复合语句内的变量定义在复合语句内的变量作用范围:作用范围:复合语句内部复合语句内部 示例:示例:int main()int a,b;int c;c=a+b;;变量变量c的的范围范围变量变量a,b的范围的范围变量的生存期变量的作用域与生存期C语言全局变量全局变量在函数以外定义的变量,不从属于任一函数。在函数以外定义的变量,不从属于任一函数。作用范围:作用范围:从定义处到源文件结束从定义处到源文件结束(包括各函数)(包括各函数)示例:示例:int p,q;float f1(int a)int b,c;char c1,c2;main 全局变量全局变量p,q的作用的作用范围范围全局变量全局变量c1,c2的作的作用范围用范围变量的生存期变量的作用域与生存期C语言案例案例2:#include int c=3;void main()int a=1,b=2;+a;c+=+b;int b=4,c;c=b*3;a+=c;printf(“first:%d,%d,%dn”,a,b,c);a+=c;printf(“second:%d,%d,%dn”,a,b,c);printf(“third:%d,%d,%dn”,a,b,c);变量的生存期变量的作用域与生存期C语言main函数体内局部变量1a2b3c全局变量236变量的生存期变量的作用域与生存期C语言复合语句体内局部变量4b c12案例案例2:#include int c=3;void main()int a=1,b=2;+a;c+=+b;int b=4,c;c=b*3;a+=c;printf(“first:%d,%d,%dn”,a,b,c);a+=c;printf(“second:%d,%d,%dn”,a,b,c);printf(“third:%d,%d,%dn”,a,b,c);amain函数体内局部变量23b6c全局变量14变量的生存期变量的作用域与生存期C语言输出结果:first:14,4,12main函数体内局部变量14a3b复合语句体内局部变量4b12c6c全局变量案例案例2:#include int c=3;void main()int a=1,b=2;+a;c+=+b;int b=4,c;c=b*3;a+=c;printf(“first:%d,%d,%dn”,a,b,c);a+=c;printf(“second:%d,%d,%dn”,a,b,c);printf(“third:%d,%d,%dn”,a,b,c);变量的生存期变量的作用域与生存期C语言输出结果:second:26,4,12main函数体内局部变量14a3b复合语句体内局部变量4b12c6c全局变量26案例案例2:#include int c=3;void main()int a=1,b=2;+a;c+=+b;int b=4,c;c=b*3;a+=c;printf(“first:%d,%d,%dn”,a,b,c);a+=c;printf(“second:%d,%d,%dn”,a,b,c);printf(“third:%d,%d,%dn”,a,b,c);变量的生存期变量的作用域与生存期C语言复合语句体内定义的局部变量b,c的存储空间被系统回收,生存期结束main函数体内局部变量26a3b复合语句体内局部变量4b12c6c全局变量案例案例2:#include int c=3;void main()int a=1,b=2;+a;c+=+b;int b=4,c;c=b*3;a+=c;printf(“first:%d,%d,%dn”,a,b,c);a+=c;printf(“second:%d,%d,%dn”,a,b,c);printf(“third:%d,%d,%dn”,a,b,c);变量的生存期变量的作用域与生存期C语言输出结果:third:26,3,6main函数体内定义的局部变量a,b,c的存储空间被系统回收,生存期结束main函数体内局部变量26a3b6c全局变量案例案例2:#include int c=3;void main()int a=1,b=2;+a;c+=+b;int b=4,c;c=b*3;a+=c;printf(“first:%d,%d,%dn”,a,b,c);a+=c;printf(“second:%d,%d,%dn”,a,b,c);printf(“third:%d,%d,%dn”,a,b,c);6.6 变量的生存期量的生存期6.6.2变量的存量的存储类型与生存期型与生存期变量的生存期变量的存储类型和生存期C语言变量的变量的存储类型存储类型 变量的存储类型是指数据在内存中存储的方式,从变量的生存期角度可分为,静态存储方式和动态存储方式。变量的生存期变量的存储类型和生存期C语言静态局部变量静态局部变量 格式:格式:类型名类型名 变量名变量名 static int a,b;static int a,b;作用范围:局部变量作用范围:局部变量 生存期:与全局变量类似,生存期:与全局变量类似,函数调用时,定义变量,分函数调用时,定义变量,分配存储单元;程序结束,系统自动回收存储单元。配存储单元;程序结束,系统自动回收存储单元。staticstatic变量的生存期变量的存储类型和生存期C语言动态局部变量动态局部变量 格式:格式:autoauto 类型名类型名 变量名变量名 auto int a,b;auto int a,b;或或 int a,b;int a,b;作用范围:局部变量作用范围:局部变量 生存期:生存期:函数调用时,定义变量,分配存储单元;函数调用函数调用时,定义变量,分配存储单元;函数调用结束,系统自动回收存储单元。结束,系统自动回收存储单元。案例案例3:voidmain()incx();incy();incx();incy();incx();incy();voidincx()intx=0;/*等价于等价于autointx=0;*/printf(“x=%dt”,+x);voidincy()staticinty=0;printf(“ny=%dn”,+y);0 xincx函数体内动态局部变量1x输出出结果:果:x=1x生存期生存期结束束0yincy函数体内静态局部变量1y输出出结果:果:x=1Y=1案例案例3:voidmain()incx();incy();incx();incy();incx();incy();voidincx()intx=0;/*等价于等价于autointx=0;*/printf(“x=%dt”,+x);voidincy()staticinty=0;printf(“ny=%dn”,+y);0 xincx函数体内动态局部变量1x输出出结果:果:x=1x生存期生存期结束束incy函数体内静态局部变量2y输出出结果:果:x=1y=1x=1y=2案例案例3:voidmain()incx();incy();incx();incy();incx();incy();voidincx()intx=0;/*等价于等价于autointx=0;*/printf(“x=%dt”,+x);voidincy()staticinty=0;printf(“ny=%dn”,+y);0 xincx函数体内动态局部变量1x输出出结果:果:x=1x生存期生存期结束束incy函数体内静态局部变量3y输出出结果:果:x=1y=1x=1y=2x=1y=3变量的生存期变量的存储类型和生存期C语言静态局部变量在程序整个运行期间都不释放。而动态局部变量函数调用结束后即释放,全局变量在整个程序运行期间都不释放。对静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值(对数值型变量)或空字符(对字符变量)。而动态局部变量,如果不赋初值则它的值是一个不确定的值。全局变量默认初值为0(对数值型变量)或空字符(对字符变量)。虽然静态局部变量在函数调用结束后仍然存在,但其他函数不能引用它。全局变量可以被其他函数引用。1.局部变量和全局变量局部变量只在定义的函数体内有效全局变量从定义位置开始到程序结束均有效局部变量和全局变量同名时,以局部变量为优先2.静态局部变量和动态局部变量静静态局部局部变量作用范量作用范围是定是定义的函数体内,但生存期是到程序的函数体内,但生存期是到程序结束束动态局部局部变量作用范量作用范围是定是定义的函数体内,但生存期是函数的函数体内,但生存期是函数执行行结束束

    注意事项

    本文((39)--6.6 变量的生存期C语言程序设计基础.ppt)为本站会员(奉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




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

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

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

    收起
    展开