一、变量按作用域范围分类
局部变量:在函数内定义的变量,作用域限于函数内。
说明:(1)主函数定义的变量不能再其他函数中使用,主函数也不能使用其他函数定义的变量。
(2)形参变量属于被调函数的局部变量,实参变量属于主调函数的局部变量。
(3)允许在不同的函数中使用相同的变量名,但它们代表不同的对象,占用不同的存储单元,互不干扰。
(4)在复合语句中也可以定义变量,但其作用域只能在复合语句内。
全局变量:在函数外定义的变量,它的作用域是从变量定义开始,到程序文件的末尾。如果在定义点前的函数要使用该外部变量,要使用关键字extern。
说明:(1)全局变量由于一个文件中所有函数都能引用全局变量的值,因为在一个函数中能够改变了变量的值会对其他函数产生影响,带来不安全性,并且一直占用存储空间,所以不建议用
(2)全局变量和局部变量同名时,在函数中全局变量隐藏,局部变量起作用。
实例:
#include <stdio.h>
void gx();
void gy();
int main()
{
extern int x,y; ///用extern将外部变量的作用域扩展到前面
printf("1:x=%d,y=%d\n",x,y);
y=246;
gx();
gy();
return