C语言程序设计立体化教程课件:函数变量说明
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
举例 想一想,下列程序输出结果是什么?
#include <stdio.h> int a=3,b=5; /*a,b为外部变量*/ int max(int a,int b) /*a,b为局部变量*/ { int c;
c=a>b? a:b; return(c); } main() { int a=8; /*a为局部变量*/ printf("%d\n",max(a,b)); }
模拟ATM工作流程
函数变பைடு நூலகம்说明
变量说明1 局部变量和全局变量
在一个函数内部定义的变量,只在本函数范围内有效的变量称为局部变量。
float f1(int a) { int b,c;
…..} char f2(int x, int y)
{int i,j; } main() { int m,n ….}
a ,b,c有效
思考题 想一想:输出结果是什么?每次循环各变量的变化情况。
#include <stdio.h> int f(int a) { auto int b=0;
static int c=3; b=b+1; c=c+1; return(a+b+c);} main() {int a=2,i; for(i=0;i<3;i++) printf("%d ",f(a)); }
变量的存储类别
1.自动的(auto); 2.静态的static;3.寄存器的register; 4.外部的(extern)
1. auto 变量
局部变量如不声明为static存储类别,都是动态分配存储空间的。 int f(a) { auto int b,c=3; } /*实际上auto 可省略*/
auto不写则隐含确定为“自动存储类别” 程序中大多数变量属于自动变量
x,y,i,j有效 m,n有效
变量说明1 局部变量和全局变量
在函数之外定义的称为外部变量,也称为全局变量
int p=1,q=5; /*外部变量*/ float f1(int a) { int b,c; }
char c1,c2; /*外部变量*/ char f2(int x,int y) {int i,j; }
c1,c2的适用范围
main() { int m,n;}
p,q 适用范围
使用说明
1、形式参数是局部变量,并且作用范围只能是本函数中。 2、不同函数中可以使用相同名字变量,他们互不干扰。 3、全局变量,并且作用范围是从定义位置开始到整个源程序结束。
4、如果在同一个源文件中,外部变量与内部变量同名,外部变量不起作用
i b(0) c(3) f(a) 0147 1158 2169
真题练一练
i(2)
m(0)
Func(4,1)
3
8
8
12
17
17
课后练一练
一维数组
变量的存储类别
2. 用static声明局部变量
(1) static变量属于静态存储类别,在静态存储区分配存储单元。在程序整个运行期间都不释放。 而auto变量属动态存储类别。
(2)static变量是在编译期间赋值的,即只赋初值一次。 auto变量是在调用时赋值的。
(3)static变量如不赋值,则自动赋值为0, auto变量如不赋值则为不确定的数。