变量作用域和存储类别.ppt

变量作用域和存储类别.ppt

ID:57052219

大小:4.53 MB

页数:12页

时间:2020-07-29

变量作用域和存储类别.ppt_第1页
变量作用域和存储类别.ppt_第2页
变量作用域和存储类别.ppt_第3页
变量作用域和存储类别.ppt_第4页
变量作用域和存储类别.ppt_第5页
资源描述:

《变量作用域和存储类别.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、变量的作用域与存储类别教学内容变量的作用域变量的存储类别内部函数和外部函数C语言中,函数可以嵌套调用,不可以嵌套定义函数递归调用指对函数自身的调用,算法描述为:if(递归终止条件)return(条件终止时的值)elsereturn递归公式变量的作用域(1/4)任何一种变量都是有自己的作用范围,变量的作用范围就是指变量的作用域,根据变量的作用域可把变量分为局部变量和全局变量。局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内,离开该函数后再使用这种变量是非法的。属于局部变量的有:在函数体内定义的变量,作用域局限于函数体内。在复合语句内定义的变量,作用域局限于

2、复合语句内。形式参数也是局部变量,只在其所在的函数范围内有效。变量的作用域(2/4)关于局部变量的几点说明:主函数main中定义的变量也只在主函数中有效,而不因为在主函数中定义而在整个程序中有效,主函数也不能使用其他函数中定义的变量。不同函数中可以使用相同名字的局部变量,它们代表不同的对象,互不干扰。全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。只有在函数内经过说明的全局变量才能使用。变量的作用域(3/4)全局变量:在函数之外定义的变量。(所有函数前,各个函数之间,所有函

3、数后)全局变量作用域:从定义全局变量的位置起到本源程序结束为止,及有extern说明的其它地方或源文件外部变量说明:extern数据类型变量表;外部变量定义与外部变量说明不同:定义说明次数:只能1次可说明多次位置:所有函数之外函数内或函数外分配内存:分配内存,可初始化不分配内存,不可初始化变量的作用域(4/4)关于全局变量的几点说明:全局变量的作用是增加了函数间数据联系的渠道。应尽量少使用全局变量,因为:全局变量在程序全部执行过程中占用存储单元降低了函数的通用性、可靠性,可移植性降低程序清晰性,容易出错若外部变量与局部变量同名,则外部变量被屏蔽。变量的存储类别(1/3)用户存储空间

4、可以分为三个部分:程序区静态存储区动态存储区全局变量、局部静态变量形参变量局部动态变量(auto)函数调用现场保护和返回地址等存储方式静态存储:程序运行期间分配固定存储空间动态存储:程序运行期间根据需要动态分配存储空间变量的存储类别(2/3)在C语言中每一个变量和函数有两个属性:数据类型和数据的存储类别。存储类别指的是数据在内存中存储的方式。在C语言中,存储方式分为两大类:静态存储类和动态存储类。具体包含四种:自动的(auto)静态的(static)寄存器的(register)外部的(extern)变量的存储类别(3/3)静态动态存储方式程序整个运行期间函数调用开始至结束生存期编译

5、时赋初值,只赋一次每次函数调用时赋初值自动赋初值0或空字符不确定未赋初值静态存储区动态区存储区寄存器局部变量外部变量作用域定义变量的函数或复合语句内本文件其它文件register局部staticauto外部static外部存储类别内部函数和外部函数根据函数能否被其他源程序文件调用,将函数分为内部函数和外部函数。根据函数能否被其他源程序在定义内部函数时,在函数名和函数类型的前面加static标识符。使用内部函数,可以使函数只局限于所在文件,如果在不同的文件中有同名的内部函数,互不干扰。C语言规定,如果在定义函数时省略extern,则隐含为外部函数。1.变量从作用域可分为外部变量和内部

6、变量,即全局变量和局部变量2.变量从生存期的角度可分为静态变量和动态变量3.函数也有内部函数与外部函数,访问时有所不同整理课堂笔记完成课后习题

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。