全局变量和局部变量的区别?

licostar 2009-01-05 02:05:51
int a,b;
int n=10;
int func()
{
int m=10;
a=m*3;
b=n*3;
return 0;
}
int main()
{
fumc();
return 0;
}
以上这个程序的n和m变量的区别是什么?
比如效率上的差别?程序在执行的时候具体是怎么操作这两个变量的?
...全文
8375 50 打赏 收藏 转发到动态 举报
写回复
用AI写文章
50 条回复
切换为时间正序
请发表友善的回复…
发表回复
wentianzhouwei 2011-03-26
  • 打赏
  • 举报
回复
给力呀!!你会的!!!!!主要就是作用域,不要想那么多!!!!!
qmycy 2010-10-13
  • 打赏
  • 举报
回复
全局变量,固定地址,变量初始化,直接在程序的数据段里。程序结束,由操作系统收回。
局部变量,用编译器分配,在x86处理中,在堆栈中,函数调用结束,局部变量的位置被释放或被别的局部变量覆盖。局部变量的初始化占用一条汇编语句。
lin776lin776 2009-05-22
  • 打赏
  • 举报
回复
我完全不懂。还要考试郁闷死了
lsd1025 2009-01-06
  • 打赏
  • 举报
回复
作用域不一样!
nullah 2009-01-06
  • 打赏
  • 举报
回复
up
pingzi_1119 2009-01-06
  • 打赏
  • 举报
回复
up
liberpc 2009-01-06
  • 打赏
  • 举报
回复
变量的作用域是不同的,多看几个实例就清楚了
Alix-Lei 2009-01-05
  • 打赏
  • 举报
回复
主要是在生存期和作用域上的区别吧
yellowhwb 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 licostar 的回复:]
能不能给我介绍下debug和release编译的区别,release编译把代买优化过了吗?
[/Quote]
release肯定是优化过的,至于怎么优化,那是各个编译器的法宝了,呵呵!
一篇文章参考一下:http://itcase.blog.163.com/blog/static/50951420077141099546/
roselake 2009-01-05
  • 打赏
  • 举报
回复
趁此学习一下O(∩_∩)O哈哈~
就呆在云上 2009-01-05
  • 打赏
  • 举报
回复
jf
yjhsou 2009-01-05
  • 打赏
  • 举报
回复
讨论这个问题很无聊,反汇编看看不就知道了。
licostar 2009-01-05
  • 打赏
  • 举报
回复
能不能给我介绍下debug和release编译的区别,release编译把代买优化过了吗?
china_west 2009-01-05
  • 打赏
  • 举报
回复
全局变量在程序中任何位置有效

局部变量只在其函数范围内有效

当局部变量和全局变量有冲突的时候



局部变量优先
empirexiong 2009-01-05
  • 打赏
  • 举报
回复
全局变量指从程序执行开始,一直到程序结束,它都存在。
局部变量指它只在它所在的那个作用域中起作用,离开那个作用域就消亡了。
wang6856 2009-01-05
  • 打赏
  • 举报
回复
回帖是一种美德!传说每天回帖即可获得 10W 分可用分!
LiTuX 2009-01-05
  • 打赏
  • 举报
回复
凑个热闹也。

据我说知,据说局部变量比全局变量效率高,不过个人认为在32位“平坦”寻址空间中,这两种差别应该不会很大。

但是,本人观点,如果能够避免,就千万不要使用全局变量,如果没有全面掌握代码——谁会知道上一次更改到底发生在什么时间什么地点?
selooloo 2009-01-05
  • 打赏
  • 举报
回复
学习下~~~
czbever 2009-01-05
  • 打赏
  • 举报
回复
简单 全局变量自定义开始到文件结束有效
yujian596 2009-01-05
  • 打赏
  • 举报
回复
就是作用域和生命周期了。。。。少用全局变量。
加载更多回复(30)

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧