全局变量,局部变量,形式参数
2016-03-20 02:27
204 查看
全局变量:全局变量在整个程序内都是可知的,因此可以被任何代码段所使用,他们在程序中执行时保持他们的值,可以再任何函数之外来创建他们,任何表达式都可访问他们。
全局变量存储在一个固定的存储区,这时由编译器设定的,当程序中多个函数使用一个变量时,全局变量就变得很有用。但是不必要的全局变量却会带来麻烦:
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被定义了两次,一次是全局变量,一次是局部变量,当全局变量和局部变量重名时,在局部变量声明的区域内我们以局部变量作为引用对象,并且再次期间对于全局变量没有任何影响。
形式参数:形式参数出现在函数内,当函数要接受实参时,必须声明接受实参的变量,这些变量就是形参,同局部变量一样,形参再出了函数之后就被销毁。
全局变量存储在一个固定的存储区,这时由编译器设定的,当程序中多个函数使用一个变量时,全局变量就变得很有用。但是不必要的全局变量却会带来麻烦:
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被定义了两次,一次是全局变量,一次是局部变量,当全局变量和局部变量重名时,在局部变量声明的区域内我们以局部变量作为引用对象,并且再次期间对于全局变量没有任何影响。
形式参数:形式参数出现在函数内,当函数要接受实参时,必须声明接受实参的变量,这些变量就是形参,同局部变量一样,形参再出了函数之后就被销毁。
相关文章推荐
- Lua中的全局变量、非全局变量总结
- js DOM 元素ID就是全局变量
- c语言全局变量和局部变量问题及解决汇总
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- 深入uCOS中全局变量的使用详解
- Ruby 中$开头的全局变量、内部变量、隐藏变量介绍
- sqlserver 局部变量的使用
- 全局变量与局部变量在内存中的区别详细解析
- 关于全局变量和局部变量的那些事
- javascript中局部变量和全局变量的区别详解
- javascript 用局部变量来代替全局变量第1/2页
- 探讨JavaScript中声明全局变量三种方式的异同
- 解析在PHP中使用全局变量的几种方法
- JQuery中使用Ajax赋值给全局变量失败异常的解决方法
- java 对象和局部变量,全局变量。
- JavaScript中的闭包
- 从jvm解释器的执行原理理解局部变量与操作数栈
- python中的局部变量和全局变量
- C语言32个关键字
- 浮点数的比较