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

如题所述

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

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

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

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

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

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-05-10
1 全局变量和外部变量是同一个概念
2 从定义来解释
根据作用域的不同,变量分为全局变量和局部变量,全局变量又叫外部变量,局部变量又叫内部变量。

谭浩强的《C程序设计(第三版)》P185页有以下定义
在函数内定义是变量是局部变量;
在函数外定义的变量是外部变量;
第2个回答  推荐于2016-11-22
全局变量在整个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是全局变量,这句是正确的。
}本回答被提问者采纳
第3个回答  2011-09-20
举个生动的例子 全局变量就像你们这栋楼

楼道里的垃圾桶

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

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

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

此时对于要用它的文件来说, 它就变成了外部变量了。
第4个回答  2011-09-20
在C语言中,全局变量的有效区域是本程序文件中定义语句之后的所有函数。
外部变量是指定该变量已经在另一个程序文件中定义。
C语言可以在编译连接生成可执行程序时,将多个程序文件生成一个可执行文件。

C语言中,全局变量和外部变量有什么区别!
全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以...

C语言中全局变量和外部变量的区别是什么?
全局变量和外部变量是从不同角度对同样的变量的称呼 全局变量是相对于局部变量而言的,表示变量作用域没有限制,在任何函数内斗可以访问 外部变量一般都是全局变量,其实就是一个声明,表示在其他文件定义的一个变量,是在多文件编译情况下跨文件访问的必要手段 ...

什么是全局变量
全局变量也就是编程术语中的一种,也称为外部变量,它是在函数外部定义的变量,也可以是在本程序任何地方创建。此外,变量分为局部与全局,局部变量又可被叫做内部的变量。是由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用。

c语言中int a[5000000]定义在main中和main外有何区别
主要区别:初始值,使用范围 在内部定义叫局部变量,而且没有初始值,也可以说是随机值,局部变量只能被本函数内使用,你的情况也就是只能在main中用.在外部定义叫全局变量,它初始值为0,全局变量可以被程序中所有的函数使用,如果你程序还有个函数,那个函数中也可以使用这个数组.

什么叫外部变量,什么叫内部变量?
C语言中,在函数体内部的变量,叫内部变量,也叫局部变量;与之对应,在函数体外部的变量,叫外部变量,也叫全局变量。例如,include <stdio.h> int x=4;void prin(){ int z;} void main(){ int x=3;int y;} 如上面的,在最上面的int x=4这是定义了一个外部变量,并初始化,而z和y...

全局变量和外部变量有区别吗?要详解哦
全局变量是整个文件都能用,而局部变量只有在本函数内可以使用,知道这个就可以了吧

C语言中变量的存储类型有哪几种,存储方式哪几种?谢喽
在C语言中,对变量的存储类型说明有以下四种:1、auto 自动变量 2、register 寄存器变量 3、extern 外部变量 4、static 静态变量 所谓存储类型是指变量占用内存空间的方式,也称为存储方式。变量的存储方式可分为“静态存储”和“动态存储”两种。1、静态存储变量通常是在变量定义时就在存储单元并...

外部变量和静态变量有什么区别?
外部变量和静态变量在程序运行和存储方式上有显著的区别。外部变量,也称为全局变量,它们在程序的整个生命周期内都存在,无论函数调用或文件包含。它们的值在函数之间可以被共享,这意味着外部变量可以在多个函数中访问和修改。这种变量的生命周期与程序运行保持一致,直到程序终止。静态变量,则是在特定的...

外部变量和静态变量有什么区别?
外部变量与静态变量在编程中有着明显的区别。外部变量通常指的是全局变量,它们在整个程序运行期间都可见,并且在程序的不同部分可以访问。这使得外部变量在不同函数或模块之间共享数据成为可能,但也可能引入潜在的错误,因为多个部分可能同时修改同一变量。静态变量则不同,它们仅在特定的函数或模块中可见。

变量是什么?
外部变量(有时称为全局变量)的性质不同于局部变量的性质。l 静态存储期限。就如同声明为static的局部变量一样,外部变量拥有静态存储期限。存储在外部变量中的值将永久保留下来。l 文件作用域。外部变量拥有文件作用域:从变量被声明的点开始一直到所在文件的末尾。因此,跟随在外部变量声明之后的所有函数...

相似回答