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

当有外部变量时,main函数中的变量也是局部变量马?如果没有外部变量?main函数里的变量就是全局变量把?intmax(intx,inty){intz;z=x>y?x:y... 当有外部变量时,main函数中的变量也是局部变量马?
如果没有外部变量?main函数里的变量就是全局变量把?
int max(int x,int y)
{int z;
z=x>y?x:y;
return(z);
}
main()
{extern A,B;
printf("%d\n",max(A,B));
}
int A=13,B=-8; 这个例子中外部变量在最后.但是因为它的存在.main中的变量也是局部变量马?
如果没有extern说明 main里的变量还是局部变量把?
展开
 我来答
浪尖讨生活9z
高粉答主

2018-10-06 · 每个回答都超有意思的
知道小有建树答主
回答量:298
采纳率:100%
帮助的人:14万
展开全部

区别:

  1. 局部变量:“在函数内定义的变量”,即在一个函数内部定义的变量,只在本函数范围内有效。

  2. 全局变量:“在函数外定义的变量”,即从定义变量的位置到本源文件结束都有效。  

当有外部变量时,main函数中的同名变量就是全局变量。如果没有外部变量,main函数里的变量依然是局部变量。 

目的:增加函数间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值,就能影响到其他函数中全局变量的值,相当于各个函数之间有直接的传递渠道。

扩展资料:

在现代的面向对象语言如Java,C++,C#,Ruby中,由于变量都是封装在类里面的,对别的类不可见,所以已经几乎完全抛弃了全局变量的概念。然而,可以通过把一个类定义为public static,把类成员变量也定义为public static,使该变量在内存中占用固定、唯一的一块空间,来实现全局变量的功能。

参考资料:百度百科全局变量

xp19971025
2018-10-06 · TA获得超过17.6万个赞
知道小有建树答主
回答量:42
采纳率:100%
帮助的人:2.2万
展开全部

一、有效范围不一样

局部变量只在本函数范围有效,在此函数以外是不能使用这些变量;

全局变量的有效范围是从定义变量的位置开始到本源文件结束。

二、内存空间不同

局部变量是程序运行到该函数时给该变量分配内存空间,函数结束则释放该内存空间;

全局变量是程序运行时事先分配内存空间,当程序结束时释放内存。

三、使用区间不同

全局变量:作用于整个c程序文件;

局部变量:作用于所属语句块或函数中。

扩展资料

全局变量是编程术语中的一种,源自于变量之分。

变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。

参考资料

百度百科-全部变量

百度百科-局部变量



本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌思迪西
2018-10-07 · TA获得超过5149个赞
知道答主
回答量:20
采纳率:0%
帮助的人:2935
展开全部

全局变量和局部变量的区别如下:

1. 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等

2. 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区

3. 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了

4. 使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量。

扩展资料:

局部变量可以与全局变量重名,但是局部变量会屏蔽全局变量。

全局变量是编程术语中的一种,源自于变量之分。

变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lllllll456
2018-10-19 · TA获得超过4205个赞
知道答主
回答量:66
采纳率:0%
帮助的人:7.8万
展开全部

全局变量与局部变量的区别在于作用域的不同,且存在时间也可能不同。不管有不有外部的变量,main函数中的变量都不能称为全局变量。

全局变量是可以被本程序所有对象或函数引用。

例如:

图中的代码,t1为全局变量,可以在main函数中使用,也可以在a函数中使用。

而t2 t3则为局部变量,它们只能在花括号内部被使用。

所以a函数不能使用t2,main函数也不能使用t3。

拓展资料:

全局变量和局部变量在内存上的不同:

局变量保存在内存的全局存储区中,占用静态的存储单元;局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配存储单元。


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gwl0507
2009-04-22
知道答主
回答量:13
采纳率:0%
帮助的人:7.7万
展开全部
我认为只要是extern定义的变量都是全局变量,还有只要是在main函数外的就是全局变量,不加extern的在main函数里面得就是局部变量!

全局变量是指在整个程序中都可用,而局部变量只是在定义他的那个{}里可用!出了那个{}他就没意义了!

你这个程序是函数的参数调用!程序的意思是:定义了两个全局变量(个人认为这里定义成局部变量也没什么)并比较这两个变量中最大的值。这里是调用了一个用户自定义函数来比较的!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式