全局变量:全局变量在整个程序内都是可知的,因此可以被任何代码段所使用,他们在程序中执行时保持他们的值,可以再任何函数之外来创建他们,任何表达式都可访问他们。
全局变量存储在一个固定的存储区,这时由编译器设定的,当程序中多个函数使用一个变量时,全局变量就变得很有用。但是不必要的全局变量却会带来麻烦:
1、全局变量在整个程序运行中都占据内存,只有当程序结束时才被销毁。
2、在应该使用局部变量的地方使用全局变量会降低函数的同用行,因为全局变量必须依靠在他本身之外的定义。
3、使用大量的全局变量会使程序因为不可预知的副作用而产生错误。(有可能会因改变全局变量的值而产生错误)
例:
#include <stdio.h>
int count;//全局变量
int main()
{
count = 100 ;//可以使用count
func1();
return 0;
}
局部变量:在函数内部声明的变量成为局部变量,更具体的说是在代码块内部创建的变量叫做局部变量(代码块就是一对{}内的内容),局部变量在进入代码块被创建,出了代码块立即被销毁。
例如:
void fun1(void )
{
int x;
x = 10;
}
void fun2(void )
{
int x;
x = -99;
}
这两个x就是局部变量。因为局部变量在出了代码块就被销毁,因此我们可以使用static这个关键字修饰变量,使他的值保留下来。没有被static声明过得局部变量都存储在堆栈上。
例:
#include <stdio.h>
int count; //全局变量
void func1(void );
int main()
{
count = 100 ;
func1();
return 0;
}
void func1(void )
{
int count; //局部变量
for (count = 1 ; count < 10; count++)
{
putchar( ‘.‘ );
}
}
在这个例子中count被定义了两次,一次是全局变量,一次是局部变量,当全局变量和局部变量重名时,在局部变量声明的区域内我们以局部变量作为引用对象,并且再次期间对于全局变量没有任何影响。
形式参数:形式参数出现在函数内,当函数要接受实参时,必须声明接受实参的变量,这些变量就是形参,同局部变量一样,形参再出了函数之后就被销毁。
本文出自 “11132019” 博客,请务必保留此出处http://11142019.blog.51cto.com/11132019/1753004
原文地址:http://11142019.blog.51cto.com/11132019/1753004