![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言中,全局变量和外部变量有什么区别!
6个回答
展开全部
全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。
其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。
全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。
在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。 有时需要在其他文件中使用extern来声明外部变量,以扩展外部变量的作用域。
也可用static声明外部变量,使该变量不能被其他文件引用。有时候他们是一样的,只有稍微一点的区别而已,不用太过于区分的。
展开全部
1 全局变量和外部变量是同一个概念
2 从定义来解释
根据作用域的不同,变量分为全局变量和局部变量,全局变量又叫外部变量,局部变量又叫内部变量。
谭浩强的《C程序设计(第三版)》P185页有以下定义
在函数内定义是变量是局部变量;
在函数外定义的变量是外部变量;
2 从定义来解释
根据作用域的不同,变量分为全局变量和局部变量,全局变量又叫外部变量,局部变量又叫内部变量。
谭浩强的《C程序设计(第三版)》P185页有以下定义
在函数内定义是变量是局部变量;
在函数外定义的变量是外部变量;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局变量在整个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是全局变量,这句是正确的。
}
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来声明它
此时对于要用它的文件来说, 它就变成了外部变量了。
楼道里的垃圾桶
外部变量相当于其他楼里的垃圾桶
全局变量的作用域是当前整个文件
其他文件要使用它,应该用extern来声明它
此时对于要用它的文件来说, 它就变成了外部变量了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在C语言中,全局变量的有效区域是本程序文件中定义语句之后的所有函数。
外部变量是指定该变量已经在另一个程序文件中定义。
C语言可以在编译连接生成可执行程序时,将多个程序文件生成一个可执行文件。
外部变量是指定该变量已经在另一个程序文件中定义。
C语言可以在编译连接生成可执行程序时,将多个程序文件生成一个可执行文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询