任务代码:
全局变量和局部变量:
#include <stdio.h>
void fun1();
void fun2();
int x=1;
int main ()
{
x++;
printf("%d\n", x);
fun1();
printf("%d\n", x);
fun2();
printf("%d\n", x);
return 0;
}
void fun1()
{
x+=3;
}
void fun2()
{
x+=7;
}
类比函数:
#include <stdio.h>
int gcd(int n1, int n2);
int lcm(int n1, int n2);
int main()
{
int num1 = 56 ,num2 =80;
int iGcd, iLcm;
iGcd=gcd(num1, num2);
iLcm=lcm(num1,num2);
printf("%d %d\n",iGcd, iLcm);
return 0;
}
int lcm(int n1, int n2)
{
return n1*n2/gcd(n1, n2);
};
int gcd(int n1, int n2)
{
int r;
while(n2!=0)
{... }
return n1;
}
知识总结:
局部变量包括:
一个函数内部定义的,包括子函数和main函数;
再复合语句也就是用花括号括起来的部分定义的函数;
在变量超出作用域后会被动态释放内存空间;
全局变量:
大多数定义在函数之外,有效位置从文件的开始直到结束;
如果全局变量和局部变量发生冲突,例如以下例子,那采用局部优先的原则;
类比推理:
函数的声明在开始位置,main之前,本身就是一种全局变量的概念,其作用范围是整个文件,这样可以随时在源文件中调动(第二种是属于局部函数,不推荐使用,第三种可以使用)
全局变量的局限性: