欢迎来到天天文库
浏览记录
ID:42716985
大小:204.50 KB
页数:13页
时间:2019-09-21
《第12章+用户标识符的作用域和存储类》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第12章用户标识符的作用域和存储类变量作用域和存储方法作用域:变量使用的范围分别介绍:局部变量全局变量静态(static)变量1.局部变量的作用域与生存期:在一个函数体内(或复合语句内)定义的变量(又称自动变量)。从定义位置开始到函数体(复合语句)结束为止。特点:①只允许在定义的范围内使用。②形式参数也是局部变量。③局部变量若没赋值,为一个随机值。④所在的函数被调用则局部变量存在。局部变量说明形式:autointa,b;或:inta,b;(省略auto)(前面程序中遇到的所有变量都是局部变量)#includevoidmain(){inta,b;…..{intx,y;……}
2、…..}x、y作用域a、b作用域<局部变量>寄存器变量:将变量放在计算机的某个寄存器内,目的为提高速度。说明形式:registerinti;registerchara;使用说明:1、寄存变量仅能为局部变量或函数的形参。2、寄存器变量不能用&取地址。3、有的系统规定仅能是int或char作寄存器变量。4、常常将少量频繁使用的量放在寄存器内。2.全局变量:在函数体之外定义的变量。特点:①全局变量可以为本程序文件中的所有函数使用,其作用范围由定义的位置开始到本文件结束。②使用全局变量起到各函数间传递参数的作用。③全局变量若没有赋值,是0值。#includeintx,y;x、y为
3、全局变量voidmain(){inta=5,b=10;a、b为局部变量x=a+b;y=a-b;ftr();printf(“%d%d”,x,y);输出的是:2060}voidftr(){inta1=40,a2=20;a1、a2为局部x=a1-a2;y=a1+a2;return;}3.静态变量:程序运行期间分配固定的存貯单元。在程序运行期间这些单元始终存在。(静态变量分为内部静态和外部静态)静态变量说明:static类型说明变量名;例如:staticinta;内部静态变量:当在程序中第2次调用时,仍保持上次的值。未赋初值的静态局部变量,编译程序自动赋初值为0。内部静态变量的举例:#incl
4、udeintx=100;(全局)voidf1(){inta=100;a+=100;x+=100;printf(“%d%d”,a,x);}voidf2(){staticintb=100;b+=100;x+=100;printf(“%d%d”,b,x);}voidmain(){f1();f1();f2();f2();}200200200300200400300500两次调f1()两次调f2()输出结果:总结:1.在一个函数中,一个变量只能被说明为一种类型。2.局部变量没有初始化不能使用。3.静态和全局变量,没有初始化时,自动为0。4.在一个程序中若局部变量与全局的同名
5、,局部的优先。内部函数和外部函数:内部函数:只能在本文件内调用。例如:staticintfun(形参){………}外部函数:可供其它文件的函数调用。例如:externintfun(形参)(extern常省略){……..}文件1:文件2:intx;staticvoidfx()voidmain(){{:f1();fy();:}}intf1()intfy(){:{:::}}
此文档下载收益归作者所有