| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:请教变量问题
只看楼主 加入收藏
wahchun
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-6-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
请教变量问题
全局变量、局部变量分别用什么数据结构存储?在内存中是用什么存储的?

用static定义的变量在C和C++中分别有什么作用?
搜索更多相关主题的帖子: 变量 
2010-06-02 15:21
lscalin
Rank: 6Rank: 6
来 自:周总理故乡
等 级:侠之大者
威 望:1
帖 子:91
专家分:405
注 册:2010-5-10
收藏
得分:5 
在哪看到过这个题目的,忘了

嘿嘿,找到了,看精华区,https://bbs.bccn.net/viewthread.php?tid=83651&extra=page%3D2%26amp%3Bfilter%3Ddigest这里有解释

[ 本帖最后由 lscalin 于 2010-6-2 15:50 编辑 ]

灵感不是曹操,说来就来。
2010-06-02 15:48
ciweitou163
Rank: 7Rank: 7Rank: 7
来 自:河北 石家庄
等 级:黑侠
威 望:1
帖 子:144
专家分:528
注 册:2008-10-4
收藏
得分:5 
百度的结果,摘自http://zhidao.baidu.com/question/52843150
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。
全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。
常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改



区别,摘自http://blog.
C语言函数前面加static,和C++类的成员函数前面加static,两者的意义有何区别?
C的static是限制函数的为编译单元内部使用
C++类的static使函数成为类成员,而不是实例成员
 
static在c里面可以用来修饰变量,也可以用来修饰函数。
         先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不包含对,不要弄混。
        int a ;
        main()
        {
             int b ;
             int c* = (int *)malloc(sizeof(int));
        }
        a是全局变量,b是栈变量,c是堆变量。
        static对全局变量的修饰,可以认为是限制了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。
        static对栈变量的修饰,可以认为栈变量的生命周期延长到程序执行结束时。一般来说,栈变量的生命周期由OS管理,在退栈的过程中,栈变量的生命也就结束了。但加入static修饰之后,变量已经不在存储在栈中,而是和全局变量一起存储。同时,离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。
       static对函数的修饰与对全局变量的修饰相似,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用。
 
C++类中的
static函数表示不能在实例化的类对象中调用,只能用类直接调用.
static变量表示这个变量属于类而不是属于某个对象


[ 本帖最后由 ciweitou163 于 2010-6-2 15:56 编辑 ]


  • 满眼生机转化钧;天工人巧日争新。
2010-06-02 15:50
jmjy
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:44
专家分:146
注 册:2010-1-7
收藏
得分:0 
看看··
2010-06-02 17:39
快速回复:请教变量问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026608 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved