局部变量vs全局变量,局部变量打断全局变量的传递!

全局变量Global Variable

全局变量会降低程序可读性!!!

全局变量作用范围:定义始至文件尾;

全局变量与局部变量同名,则在局部变量的作用范围内,全局变量被屏蔽。

全局变量增加了程序的耦合度,如果一个全局变量可以被多个

要限制使用全局变量!


局部变量Local Variable

不同的函数及作用域中可以使用相同名字的局部变量,它们在内存中分属不同的存储区间,互不干扰。


复合语句的作用

大家都知道  case里边不允许声明变量。。

但是就像声明,而且用完就去掉怎么办??

答案就是:符合语句加局部变量

大括号括起来,里边声明变量,局部变量出作用域,自动释放。

局部变量有神马效果??
局部变量又称为自动变量,就是在栈区的变量,出作用域,会自动释放的变量
效果就是不用你手动去释放变量的空间,出作用域系统会自动释放。。。

与自动变量相对应的是static变量,就是静态变量,它是在全局区的变量,出作用域不会自动释放的变量

/*
*copyright(c) 2018,HH
*All rights reserved.
*作 者:HH
*完成日期:2018年7月10日
*版本号:v1.0
*
*问题描:;全局变量vs局部变量!局部变量打断全局变量的传递!
*输入描述:;
*程序输出:;。
*/

#include<stdio.h>
void fun1();
void fun2();
int x=1;//定义x为全局变量
int main()
{
    //int x=1;//此局部变量也会“中断”全局变量的传递!!!
    x++;
    printf("%d\n",x);
    fun1(x);
    printf("%d\n",x);
    fun2(x);
    printf("%d\n",x);
    return 0;
}


/*
定义1
功能:
参数:
返回值:
算法:
*/
void fun1()
{
    //int x=1;//若在此设置局部变量,则仅在此函数中有效,会打断主函数中“全局变量”的传递!!!!
    x+=3;
}
/*
定义2
功能:
参数:
返回值:
算法:
*/
void fun2()
{
    //int x=1;//局部变量
    x+=7;
}






猜你喜欢

转载自blog.csdn.net/pl0020/article/details/80981851