C语言中,全局变量和外部变量有什么区别!

 我来答
大大的Wiener
2018-04-09 · TA获得超过6.4万个赞
知道大有可为答主
回答量:392
采纳率:90%
帮助的人:33万
展开全部

全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。

其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。

全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。

在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。 有时需要在其他文件中使用extern来声明外部变量,以扩展外部变量的作用域。

也可用static声明外部变量,使该变量不能被其他文件引用。有时候他们是一样的,只有稍微一点的区别而已,不用太过于区分的。

一口没水的枯井
推荐于2016-05-10 · TA获得超过2988个赞
知道小有建树答主
回答量:473
采纳率:100%
帮助的人:150万
展开全部
1 全局变量和外部变量是同一个概念
2 从定义来解释
根据作用域的不同,变量分为全局变量和局部变量,全局变量又叫外部变量,局部变量又叫内部变量。

谭浩强的《C程序设计(第三版)》P185页有以下定义
在函数内定义是变量是局部变量;
在函数外定义的变量是外部变量;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
furious_tauren
推荐于2016-11-22 · TA获得超过4055个赞
知道大有可为答主
回答量:1913
采纳率:100%
帮助的人:765万
展开全部
全局变量在整个c文件中都能使用,而局部变量在其作用域内才能使用,举个例子

int f = 7; // 这个是全局变量
int myadd(int a, int b)
{
int c = a + b; // c是局部变量,只能在myadd中使用
return c;
}

int main(void)
{
printf("%d\n", c); // 因为c是myadd中定义的局部变量,这里会报错。
printf("%d\n", f); // f是全局变量,这句是正确的。
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-20
展开全部
举个生动的例子 全局变量就像你们这栋楼

楼道里的垃圾桶

外部变量相当于其他楼里的垃圾桶

全局变量的作用域是当前整个文件

其他文件要使用它,应该用extern来声明它

此时对于要用它的文件来说, 它就变成了外部变量了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b452582
2011-09-20 · TA获得超过2581个赞
知道小有建树答主
回答量:953
采纳率:100%
帮助的人:332万
展开全部
在C语言中,全局变量的有效区域是本程序文件中定义语句之后的所有函数。
外部变量是指定该变量已经在另一个程序文件中定义。
C语言可以在编译连接生成可执行程序时,将多个程序文件生成一个可执行文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式