谁能解释一下局部对象、静态对象和全局对象啊?

bluefin 2002-09-20 09:26:19
最好能给个例子,谢谢了。
...全文
498 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pora 2002-09-22
  • 打赏
  • 举报
回复
这要从存储,语义和初始化上去讨论:
1.从存储上来说,全局和静态变量都是“全局”。他们占用的内存是不会被释放的。
2.从语义上来说:全局变量的名字是全局可见的,但是静态变量和局部变量的名字不是全局可见的。(这也就是为什么把anonymous namespace scope variable也叫做局部变量的原因,因为虽然他的声明语法使用全局变量的语法,他的名字是局部可见的)
3.从初始化来说,全局变量是:main前初始化,main后析构。静态变量是在scope一级被初始化的,譬如:
void func(void)
{
static SomeClass sc;
}
如果func不被调用到,这个sc虽然占用内存,他的初始化永远不会被调用到。
但是静态变量的析构是全局的。
临时变量的构造和析构都是局部的。
还有,大家注意一点:const是缺省全局的,这很重要!!!!
-------------------------------------------------------
www.AllAboutProgram.com
hypmonkey 2002-09-22
  • 打赏
  • 举报
回复
没事,我看看我几个角了
hypmonkey 2002-09-22
  • 打赏
  • 举报
回复
hey darling
liubear 2002-09-22
  • 打赏
  • 举报
回复
局部对象就是只在局部使用,出了局部环境就不存在了。以{}为其存在区域。
静态对象是对文件而言,文件之外是不可见的。
全局对象则在整个程序都可见。
kjijian 2002-09-20
  • 打赏
  • 举报
回复
局部对象就是只在局部使用比如在函数里,复合语句里,出了局部环境就不存在了。

静态对象分为静态全局对象和静态局部对象
静态局部对象和局部对象的用法类似,但其在退出整个程序时,才消失,不象局部对象出了局部环境就不存在了。
静态全局对象只在其申明的文件内是全局的,其它文件不能访问,其也是退出整个程序时,才消失。

全局对象对整个程序是可见的。其也是退出整个程序时,才消失。

同上:
alexxing 2002-09-20
  • 打赏
  • 举报
回复
对象就是变量
变量有局部、全局、静态,对象也一样

Class extern1;
static Class static1;
void func(Class local1)
{
Class local2;
static Class static2;
extern Class extern2;
}
extern Class extern3;

local1,local2: 局部变量(参数也可以看作局部变量)
static1,static2: 静态变量
extern1,extern2, extern3: 全局变量

================================================================
人生最大的幸福莫过于顿顿有玉米吃
(CSDN 论坛助手,挺好使!俺们拨号上网的有福了)
blue_coco 2002-09-20
  • 打赏
  • 举报
回复
局部对象就是只在局部使用比如在函数里,复合语句里,出了局部环境就不存在了。

静态对象分为静态全局对象和静态局部对象
静态局部对象和局部对象的用法类似,但其在退出整个程序时,才消失,不象局部对象出了局部环境就不存在了。
静态全局对象只在其申明的文件内是全局的,其它文件不能访问,其也是退出整个程序时,才消失。

全局对象对整个程序是可见的。其也是退出整个程序时,才消失。
oyxiaoyu0 2002-09-20
  • 打赏
  • 举报
回复
都看成和变量一样的概念就行了!
step_by_step 2002-09-20
  • 打赏
  • 举报
回复
局部对象的声明期是local的,比如在函数里,复合语句里
静态变量包括局部静态变量和全局静态变量
全局对象是就是全局静态变量

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧