版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1212章章 用户标识符的作用域和存储类用户标识符的作用域和存储类变量作用域和存储方法变量作用域和存储方法 作用域:变量使用的范围作用域:变量使用的范围 分别介绍:分别介绍: 局部变量局部变量 全局变量全局变量 静态(静态(static)变量)变量 1. 局部变量的作用域与生存期:局部变量的作用域与生存期: 在一个函数体内在一个函数体内(或复合语句内或复合语句内)定义的变量定义的变量 (又称自动变量又称自动变量) 。从定义位置开始到函数体(复。从定义位置开始到函数体(复合语句)结束为止。合语句)结束为止。 特点:特点: 只允许在定义的范围内使用。只允许在定义的范围内使用。 形式参数也是局部
2、变量。形式参数也是局部变量。 局部变量若没赋值,为一个随机值。局部变量若没赋值,为一个随机值。 所在的函数被调用则局部变量存在。所在的函数被调用则局部变量存在。 局部变量说明形式:局部变量说明形式: auto int a,b; 或:或: int a,b; (省略省略auto)(前面程序中遇到的所有变量都是局部变量)(前面程序中遇到的所有变量都是局部变量)#include void main( ) int a,b; . int x,y; . x、y作用域作用域a、b作用域作用域v 寄存器变量:寄存器变量: 将变量放在计算机的某个寄存器内,目的为提高速将变量放在计算机的某个寄存器内,目的为提高速度
3、。度。 说明形式:说明形式: register int i; register char a;使用说明:使用说明: 1、寄存变量仅能为局部变量或函数的形参。、寄存变量仅能为局部变量或函数的形参。 2、寄存器变量不能用取地址。、寄存器变量不能用取地址。 3、有的系统规定仅能是、有的系统规定仅能是int 或或 char作寄存器变量。作寄存器变量。 4、 常常将少量频繁使用的量放在寄存器内。常常将少量频繁使用的量放在寄存器内。2.全局变量全局变量:在函数体之外定义的变量。:在函数体之外定义的变量。特点:特点: 全局变量可以为本程序文件中的所有函全局变量可以为本程序文件中的所有函 数使用,其作用范围由
4、定义的位置开始数使用,其作用范围由定义的位置开始 到本文件结束。到本文件结束。 使用全局变量起到各函数间传递参数的使用全局变量起到各函数间传递参数的 作用。作用。 全局变量若没有赋值,是全局变量若没有赋值,是0值。值。#include int x , y; x、y为全局变量为全局变量 void main ( ) int a=5,b=10; a、b为局部变量为局部变量 x=a+b; y=a-b; ftr( ); printf (“%d%dn”,x,y); 输出的是:输出的是:20 60 void ftr( ) int a1=40,a2=20; a1、a2为局部为局部 x=a1-a2; y=a1+
5、a2; return; 3.静态变量静态变量:程序运行期间分配固定的存貯单元。:程序运行期间分配固定的存貯单元。 在程序运行期间这些单元始终存在。在程序运行期间这些单元始终存在。 (静态变量分为内部静态和外部静态)静态变量分为内部静态和外部静态)静态变量说明:静态变量说明: static 类型说明类型说明 变量名;变量名;例如:例如: static int a;内部静态变量:当在程序中第内部静态变量:当在程序中第2次调用时次调用时,仍保持仍保持上次的值。上次的值。未赋初值的静态局部变量,编译程序未赋初值的静态局部变量,编译程序自动赋初值自动赋初值为为0。内部静态变量的举例:内部静态变量的举例:
6、 #include int x=100; (全局全局) void f1() int a=100; a+=100; x+=100; printf (“%d %dn”, a, x) ; void f2() static int b=100; b+=100; x+=100; printf (“%d %dn”, b , x); void main ( ) f1( ); f1( ); f2( ); f2( ); 200 200 200 300 200 400 300 500两次调两次调f1( )两次调两次调f2( ) 输出结果:输出结果:总结:总结: 1.在一个函数中,一个变量只能被说明为一种在一个函数中,一个变量只能被说明为一种 类型。类型。 2.局部变量没有初始化不能使用。局部变量没有初始化不能使用。 3.静态和全局变量,没有初始化时,静态和全局变量,没有初始化时,自动为自动为0。 4. 在一个程序中若局部变量与全局的同名,在一个程序中若局部变量与全局的同名, 局部的优先。局部的优先。 内部函数和外部函数:内部函数和外部函数:内部函数:内部函数:只能在本文件内调用。只能在本文件内调用。 例如:例如:static int fun(形参)形参) 外部函数外部函数: 可供其它文件的函数调用。可供其它文件的函数调用。 例如:例如:extern int fun(形参)形参) (exte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河北对外经贸职业学院单招综合素质考试题库有答案详解
- 2026年河北工艺美术职业学院单招职业适应性测试题库有答案详解
- 2026年南京信息职业技术学院单招职业适应性测试题库带答案详解
- 2026年酒泉职业技术学院单招职业适应性测试题库有答案详解
- 2026年兰州资源环境职业技术学院单招综合素质考试题库有答案详解
- 2026年甘肃省白银市高职单招职业技能考试题库附答案详解
- 未来五年丝制睡袋行业市场营销创新战略制定与实施分析研究报告
- 未来五年进出港船舶推拖服务行业市场营销创新战略制定与实施分析研究报告
- 未来五年车用尿素市场需求变化趋势与商业创新机遇分析研究报告
- 未来五年抗菌素片剂市场需求变化趋势与商业创新机遇分析研究报告
- 2025年儒林外史选择题库及答案
- 医院医用耗材出库管理制度
- 文化旅游培训课件
- (2025年标准)水果代收协议书
- GB/T 17642-2025土工合成材料非织造布复合土工膜
- 2025年江西水利职业学院单招综合素质考试题库新
- 化验室工作流程与职责规范详解
- 初中数学作业设计与管理
- 2025版校园食堂日管控、周排查、月调度记录表
- 2024年贵州省普通高中学业水平选择性考试地理试题(原卷版+解析版)
- 2025年河南机电职业学院单招职业技能测试题库及参考答案
评论
0/150
提交评论