CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

变量的内存分配

楼主mike_cx(mike)2002-01-31 16:25:34 在 C/C++ / C语言 提问

我在一本书上看到了这样的描述:  
  全局变量和静态变量在定义(分配空间)时,将位模式清0,局部变量在定义时,分配的内存空间内容保持原样,故为随机数。  
  请问这句话什么意思,或者在那些书里可以查到他们的详细解释,谢谢! 问题点数:20、回复次数:9Top

1 楼codfish(户中)回复于 2002-01-31 16:56:00 得分 0

全局变量和静态变量在定义赋初值,进行0初始化,  
  局部变量在定义时要自定义,否则是野变量,很危险哟!  
  如   int   nRet;  
  可靠写法:int   nRet=0;  
  三种变量分配位置有区别,编译器对其操作有区别.  
  Top

2 楼cshchina(找工作)回复于 2002-01-31 17:00:06 得分 0

全局变量和静态变量在定义时系统将其清0,  
  而局部变量系统是不会这样对待的Top

3 楼jyc_nj(老蔣)回复于 2002-01-31 17:01:09 得分 0

是说全局变量在编译的时候会自动初始化,而局部变量是从栈里分配的内存空间,在超过它的有限范围后就给释放,可能会给多次分配,所以定义时不作变化,是乱数。  
  所以,你的局部变量在用前一定要自己完成附初值,而全局的不用,不过,定义时附初值是个好习惯。Top

4 楼x_danny(hu_xx)回复于 2002-01-31 17:25:08 得分 0

全局变量和静态变量会自动初始化(只有一次),但局部变量不会自动初始化,因此使用时需特别小心。Top

5 楼echolover(盈子)回复于 2002-01-31 17:33:44 得分 0

全局变量和静态变量在编译时如果是内建类型(如int,char。。)编译器会在data   segment内为它们分配内存,并初始化为0,如果是自定义类型只分配内存空间,在进入main之前会调用constructor初始化它。而局部变量若不赋值,会在栈中分配,但不会初始化,保持上次用过的值。Top

6 楼tmp2002(C#Online)回复于 2002-01-31 19:49:03 得分 0

接echolover的话,   局部变量赋值,还是在栈里分配空间!Top

7 楼d_selenite(计算机的奴隶)回复于 2002-01-31 21:23:36 得分 20

全局变量和静态变量是在编绎的时候就分配好的,在相应的位置全填了零,在实模式方式下就是:全局和静态是填在数据段里的零,而局部变量则是在需要时临时在堆栈段里分配的,其值就是分配的空间里原先的数据,所以是随机的Top

8 楼mike_cx(mike)回复于 2002-02-01 09:43:22 得分 0

谢谢各位Top

9 楼TalentSprite(举头望明月)回复于 2002-02-01 10:36:22 得分 0

看看!Top

相关问题

  • 多任务中全局变量和静态变量的内存分配
  • 紧急求救?关于变量分配内存。
  • 什么时候给变量分配内存??
  • 循环里定义变量的内存分配问题
  • 请教全局二维数组变量的内存分配!
  • 类中的STATIC型的变量是如何进行内存分配
  • new过程----一个为指针变量分配内存的问题!
  • 怎么在VC6中查看某变量在内存中是怎么分配的?
  • 如何定义一个动态分配内存的全局变量?
  • 谁能更我说说变量内存分配的问题~堆~栈

关键词

  • 内存
  • 局部变量
  • 变量
  • 分配
  • 初始化
  • 定义
  • 初值
  • 全局
  • 全局变量和静态
  • 空间

得分解答快速导航

  • 帖主:mike_cx
  • d_selenite

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo