局变量是使用相同的内存块在整个类中存储一个值。
全局变量的存在主要有以下一些原因: 
1,使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不成为什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。 
2,使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样现在也快不了多少。 
3,对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。 
总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使期名字易于理解,而且不能太短,避免名字空间的污染;避免使用巨大对象的全局变量。
局部变量说明:
在程序中,只在特定的过程或函数中可以访问的变量,是相对与全局变量而言的。
全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。
局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。根据使用范围来区分的。
1.局部变量
他是 指在函数内部定义的变量 作用域为定义局部变量的函数 也就是说他只能在定义他的函数中使用
最值得注意的是 只有在程序执行到定义他的模块时才能生成,一旦执行退出该模块则起变量消失
eg.
func ()
{
int x; 局部变量x的作用域 很明确
......
}
2.全局变量
在程序执行的过程中一直有效
int x=;
func ()
{
x=x+;
}
func1 ()
{
x=x-;
}
main ()
{
}
由此不难看出整型x的作用范围
对于全局变量 如果在定义的时候不做初始化 则系统将自动为起赋值 数值型为0
字符型为空'\0'
全局变量的弊端 增加内存开销 降低函数的通用性
定义全局变量时,理想的位置是在文件的开头,当这些函数以及同一个程序中的其他源程序文件中的某些函数需要使用该全局变量时,在函数内部对该变量使用extern 加以说明,说明他是外部的。
(这里还要做详细的讲解)
main ()
{
extern int a,b;
printf ("mIn is %d\n",min(a,b));
}
int a=,b=;
int min (x,y)
int x,y;
{
int z;
z=x<y?x:y;
return(z);
}
我还要说明的是 对外部变量的说明和对全局变量的定义不是一回事。对外部变量的说明 只是声明该变量是在外部定义过的一个全局变量 在这里引用 而对全局变量的定义则是要对其分配存储单元的。一个全局变量只能定义一次 可是却可以多次引用。在同一源文件中,全局变量和局部变量同名时,在局部变量的作用域内,全局变量不起作用的。
-----------------------------------------------------------
更新:20161009
关联:http://blog.csdn.net/t5studio
Email:zhsh641@163.com

最新文章

  1. [转]webpack
  2. Fragment的使用(二)
  3. SharePoint 2013 新功能探索 之 SPGroup、SPUser 事件处理程序 还要继续改进
  4. Mysql按时间段分组查询来统计会员的个数
  5. shell 循环使用
  6. 聊聊css盒子模型
  7. apache tomcat 集群! (转)
  8. ecshop中smarty比较操作符(eq,ne,neq)含义
  9. SQL Server学习之路(三):“增删改查”之“增”
  10. MongoDB 搭建文件存储的方案
  11. Combiners和Partitioner编程
  12. Java 11 新功能来了!
  13. java详细剖析
  14. python第四十一天---作业:简单FTP
  15. 【C#公共帮助类】JsonHelper 操作帮助类
  16. python 匿名函数 lambda 的使用
  17. localStorage 和 sessionStorage
  18. 源码安装postgresql数据库
  19. marioTcp
  20. Tweak和app交互方案【进程通信】

热门文章

  1. gulp 外挂 rename 的使用
  2. PHP 返回JSON
  3. 5.3监听请求:使用eclipse的tcp/ip工具(端口转换)
  4. matlab画带标记的折线图
  5. Apache Commons CLI官方文档翻译 —— 快速构建命令行启动模式
  6. IE9浏览器中的My97日历控件刷新后无法打开问题解决办法
  7. cocos2d-x quick 学习 二 Hello world
  8. 字符转换(C、C++)
  9. Python—redis
  10. JSON对象转换问题