![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
10个回答
展开全部
二楼的不知道是不是书上的定义,回答的不错,不过我补充一些。
在括号体里{}定义的是局部变量,它的生命周期是该块结束。局部变量需要自己初始化,并且位于堆栈中。
如果用static前缀,如在源文件开头的话是本原文件的全局变量,如果在所有函数前定义不加static的话就是全局变量。 --- 这个静态的非常复杂,静态全局和全局和局部都不一样,静态全局实际上生命周期不同,和全局变量类似,它的生命周期和文件无关,跨文件访问也是正确的,只是改变了可见性,即你不能直接在其他文件中看见。
对于全局变量,不是static的,也不在任何块内。生命周期是整个程序的运行过程,可见性也是整个程序。extern的作用仅仅是告诉编译器,那个变量的类型,要不然编译器不认识那个变量。所以同一个文件里,extern 和 不带extern的声明可以同时存在。
在括号体里{}定义的是局部变量,它的生命周期是该块结束。局部变量需要自己初始化,并且位于堆栈中。
如果用static前缀,如在源文件开头的话是本原文件的全局变量,如果在所有函数前定义不加static的话就是全局变量。 --- 这个静态的非常复杂,静态全局和全局和局部都不一样,静态全局实际上生命周期不同,和全局变量类似,它的生命周期和文件无关,跨文件访问也是正确的,只是改变了可见性,即你不能直接在其他文件中看见。
对于全局变量,不是static的,也不在任何块内。生命周期是整个程序的运行过程,可见性也是整个程序。extern的作用仅仅是告诉编译器,那个变量的类型,要不然编译器不认识那个变量。所以同一个文件里,extern 和 不带extern的声明可以同时存在。
展开全部
作用域不同。
生命周期不同。
理解这两个就可以了。
生命周期不同。
理解这两个就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在函数外面定义的,是全局变量,能被整个源程序使用。
在函数里面定义的,是局部变量,只能在该函数里使用。
如 #include<stdio.h>
int a=2; \全局变量
int main()
{
int b=1; \局部变量
.......... \省略
}
在函数里面定义的,是局部变量,只能在该函数里使用。
如 #include<stdio.h>
int a=2; \全局变量
int main()
{
int b=1; \局部变量
.......... \省略
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局变量所有的块都能使用,局部变量只能在定义他的块中使用。他俩生命周期也不一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义在函数外部的是全局变量,定义在函数内部的是局部变量.主要看它定义后所牵涉的范围..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询