引言:
变是永远不变的——知识的理解也是如此。
概述:
小编今天为大家带来C语言系列第一篇博客,局部变量和全局变量。我们编程的过程中,接触多的是面向对象的局部变量和全局变量,现在我们来谈谈面向过程的全局变量和局部变量,这俩者在概念上没有核心区别,核心还是在面向过程和面向对象性质本身,面向对象体现封装,面向过程则是具体。
内容:
一 什么是局部变量
1 定义: 一个过程中定义的变量称之为局部变量,该过程在C语言中可以看成一个函数,在面向对象语言中可以看成一个方法。
2 特点:
(1) 不同函数中可以使用相同名字的变量,它们代表不同变量,互不干扰,原因在于占用不同的内存单元。
(2) 函数的形式参数也属于局部变量的范畴,例如f1(a,b),f2(c,d);f2中不能使用a与b。
(3)特例:一个函数中有多个复合语句,也叫作程序块,一个符合语句中定义的变量只能在本复合语句中使用。实例:俩个for循环的参数不同,一个为i,一个j;i和j不能同时出现在同一个for循环中,嵌套除外。
二 什么是全局变量
1 定义:可以被其作用域范围内所有函数使用的变量,称之为全局变量。
2 特点:
(1)一个函数改变了全局变量的值,共享到其他函数。
(2)没有必要不要使用全局变量
1)在程序的全部执行过程中都占用存储单元。
2)函数通用性降低,受到全局变量的制约。
3)全局变量过多,降低程序的清晰性,增加阅读代码的压力。
3 实例:a.b均为全局变量
#include <stdio.h>
int a=3,b=5;
void main()
{
int c = 0;
c = a * b;
printf("%d\n",c);
}
三 对比联系
1 定义上不同,一个函数体外一个函数体内;
2 作用域上不同,一个函数体内部,一个从定义开始到结束。
3 联系:若一个程序中,局部变量和全局变量同名,则在局部变量的作用域中屏蔽全局变量,即全局变量不起作用。
总结:
全局变量和局部变量要看所处什么环境,不同环境起到不同的作用,我们应当灵活使用。