C语言:全局变量和局部变量

任务代码:

全局变量和局部变量:

#include   
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   
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函数;

再复合语句也就是用花括号括起来的部分定义的函数;

在变量超出作用域后会被动态释放内存空间;


全局变量:

大多数定义在函数之外,有效位置从文件的开始直到结束;

如果全局变量和局部变量发生冲突,例如以下例子,那采用局部优先的原则;

C语言:全局变量和局部变量_第1张图片

C语言:全局变量和局部变量_第2张图片


类比推理:

函数的声明在开始位置,main之前,本身就是一种全局变量的概念,其作用范围是整个文件,这样可以随时在源文件中调动(第二种是属于局部函数,不推荐使用,第三种可以使用)

C语言:全局变量和局部变量_第3张图片


全局变量的局限性:

C语言:全局变量和局部变量_第4张图片



你可能感兴趣的:(C语言提高学习)