内容正文:
课题序号
授课班级
授课课时
授课形式
理论
授课章节
名称
第6章 函数 6.4 变量的作用域 6.5变量的存储类别
使用教具
计算机、多媒体电视、黑板
教学目的
1. 掌握变量的作用域
2. 掌握局部变量和全局变量的区别
3. 掌握变量的存储类别
教学重点
1.变量的作用域2.掌握局部变量和全局变量的区别
教学难点
1.全局变量和局部变量的概念与使用2.变量的存储方式
更新、补
充、删节
内容
课外作业
教学后记
授课主要内容或板书设计
6.4变量的作用域
一:变量的作用域
1、 局部变量
2、 全局变量
二:变量的存储类型
1、 存储方式
2、 自动变量
3、 静态局部变量
4、 寄存器变量
5、 外部变量
课 堂 教 学 安 排
教学过程
主 要 教 学 内 容 及 步 骤
(一)前堂回顾
(二)导入新课
(三)新授
(三)总结扩展:
(四)作业布置:
函数的数据传递有三种方式:
主调函数 被调函数。通过实际参数传递给形式参数。
被调函数 主调函数。通过return语句把函数值返回到主调函数。
无值返回:只完成一定的功能,不返回任何值。
有值返回:只能返回一个值。
主调函数 被调函数。通过全局变量或以数组名作为参数传递。
传址返回:返回的不是具体的值,而是值的地址,需要返回多个值时使用。
上节课我们已经讲了地址传值的一种,以数组名为参数的传递方式。今天我们来讲一下通过全局变量传值的方式以及变量的存储方式。
6.4 变量的作用域
一:变量的作用域
在讨论函数的形参变量时曾经提到, 形参变量只在被调用期间才分配内存单元,调用结束立即释放。 这一点表明形参变量只有在函数内才是有效的, 离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量, C语言中所有的量都有自己的作用域。变量说明的方式不同,其作用域也不同。 C语言中的变量,按作用域范围可分为两种, 即局部变量和全局变量。
1、局部变量
局部变量也称为内部变量,它是在函数内部被定义的,并只能在函数内部有效。如:
A. 函数内部定义的变量。
B. 复合语句定义的变量。(只在复合语句中有效)
C. 形参中的变量。
注意:不同函数中,可以使用相同名字的变量,但它们代表不同的对象,互不干扰。Main函数中的变量也是局部变量,只在主函数中有效。局部变量未赋初值时,其值为不定值。
例如:
int f1(int a) /*函数f1*/
{int b,c;
……
}a,b,c作用域
int f2(int x) /*函数f2*/
{int y,z;
}x,y,z作用域
main()
{int m,n;
}
m,n作用域
2、全局变量
全局变量:在函数之外定义的变量称为外部变量,也就是全局变量。它的有效范围是从定义变量的位置开始到本源程序结束。
注意:定义局部变量时,一定要避免与全局变量同名,若同名,在局部变量使用时,全局变量将被“屏蔽”。若全局变量未赋初值时,数值型其值为0,字符型其值为‘\0’。
例如:main()
{int s,a;
……
{int b;
s=a+b;
……b作用域}
……s,a作用域}
[例]main()
{int i=2,j=3,k;
k=i+j;
{int k=8; 此时的k为局部变量(复合语句变量)
if(i=3) printf("%d
",k);} 此时,k为8
printf("%d
%d
",i,k);} 此时,k为5
二:变量的存储类型
1、 变量的存储方式:
根据变量的作用域(空间角度)的不同,可将变量分为局部变量和全局变量。根据变量的生存期(时间角度)的不同,可将变量分为静态存储方式和动态存储方式。
程序区存储程序代码,静态存储区和动态存储区存放数据。
2、 自动变量(auto)
auto型:在堆栈区域中属于临时性存储,并不长期占内存。(局部变量)
例:auto int x; 与 int x;等价。若没有指定存储类别,系统默认为自动变量。
3、静态变量(static)
Static型:存储在一般内存区域中,并分配一定的内存空间,在整个程序运行期间一直归该变量使用。(可以为局部变量也可以为全局变量)
静态变量的值在函数调用结束后不消失而保留原值,在下一次函数调用时,此变量已有值。
4、寄存器变量(register)
register型:存储在CPU通用寄存器中,不需访问内存,速度快。(局部变量)也是自动变量。
5、外部变量(extern)
extern型:表明是一个外部的变量或函数,可供其他函数或文件使用。
通过对变量的作用域和变量的存储方式的了解使我们在使用函数进