社区
C语言
帖子详情
变量的内存分配
mike_cx
2002-01-31 04:25:34
我在一本书上看到了这样的描述:
全局变量和静态变量在定义(分配空间)时,将位模式清0,局部变量在定义时,分配的内存空间内容保持原样,故为随机数。
请问这句话什么意思,或者在那些书里可以查到他们的详细解释,谢谢!
...全文
159
9
打赏
收藏
变量的内存分配
我在一本书上看到了这样的描述: 全局变量和静态变量在定义(分配空间)时,将位模式清0,局部变量在定义时,分配的内存空间内容保持原样,故为随机数。 请问这句话什么意思,或者在那些书里可以查到他们的详细解释,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TalentSprite
2002-02-01
打赏
举报
回复
看看!
mike_cx
2002-02-01
打赏
举报
回复
谢谢各位
d_selenite
2002-01-31
打赏
举报
回复
全局变量和静态变量是在编绎的时候就分配好的,在相应的位置全填了零,在实模式方式下就是:全局和静态是填在数据段里的零,而局部变量则是在需要时临时在堆栈段里分配的,其值就是分配的空间里原先的数据,所以是随机的
tmp2002
2002-01-31
打赏
举报
回复
接echolover的话, 局部变量赋值,还是在栈里分配空间!
echolover
2002-01-31
打赏
举报
回复
全局变量和静态变量在编译时如果是内建类型(如int,char。。)编译器会在data segment内为它们分配内存,并初始化为0,如果是自定义类型只分配内存空间,在进入main之前会调用constructor初始化它。而局部变量若不赋值,会在栈中分配,但不会初始化,保持上次用过的值。
x_danny
2002-01-31
打赏
举报
回复
全局变量和静态变量会自动初始化(只有一次),但局部变量不会自动初始化,因此使用时需特别小心。
jyc_nj
2002-01-31
打赏
举报
回复
是说全局变量在编译的时候会自动初始化,而局部变量是从栈里分配的内存空间,在超过它的有限范围后就给释放,可能会给多次分配,所以定义时不作变化,是乱数。
所以,你的局部变量在用前一定要自己完成附初值,而全局的不用,不过,定义时附初值是个好习惯。
cshchina
2002-01-31
打赏
举报
回复
全局变量和静态变量在定义时系统将其清0,
而局部变量系统是不会这样对待的
codfish
2002-01-31
打赏
举报
回复
全局变量和静态变量在定义赋初值,进行0初始化,
局部变量在定义时要自定义,否则是野变量,很危险哟!
如 int nRet;
可靠写法:int nRet=0;
三种变量分配位置有区别,编译器对其操作有区别.
c语言
内存分配
之局部
变量
内存分配
局部
变量
内存分配
情况: 局部
变量
保存在栈中(保存地址由高地址到低地址)。 先定义先分配内存。 由此可见局部
变量
分配空间的顺序和
变量
的声明顺序直接相关,同时按照内存地址由高到低的顺序进行空间分配. 先定义,先分配,地址由高到低 数组越界问题(看图3和图4) 由于首先声明的是数组a[4],于是在高位
C++全局
变量
内存分配
和初始化顺序
C++全局
变量
内存分配
和初始化顺序 1.局部
变量
规则 局部
变量
是在栈空间上,
内存分配
的顺序和代码的顺序是一致的 2.全局
变量
规则 2.1 初始化的全局
变量
一般来说,对于初始化的全局
变量
,编译器遇到之后知道这是一个定义,会马上分配空间,例如: int ib = 10; int ia = 10; 这个分配的结果是:ia的地址在ib后面 2.2 未初始化的全局
变量
对于未初始化的全局
变量
,编译器遇到之...
golang的gc回收针对堆还是栈?
变量
内存分配
在堆还是栈?
这里不讲垃圾回收的机制 先给出三个结论: golang的垃圾回收是针对堆的 引用类型的全局
变量
内存分配
在堆上,值类型的全局
变量
分配在栈上 局部
变量
内存分配
可能在栈上也可能在堆上 我们都知道
变量
占有内存,内存在底层分配上有堆和栈。 值类型
变量
的内存通常是在栈中分配 引用类型
变量
的内存通常在堆中分配 注意这里说的是"通常",因为
变量
又分为局部
变量
和全局
变量
。 当
变量
是全局
变量
时,符合上面所说...
STM32关于堆栈,局部
变量
全局
变量
内存分配
的问题
STM32关于堆栈,局部
变量
全局
变量
内存分配
的问题 开发环境:IAR for ARM 8.30.1 MCU:STM32F103RCT6 以一个简单的bootloader程序为例,先来看看map文件中的
内存分配
: ******************************************************************************* *** PLACE...
结构体
变量
内存分配
问题
由于系统 遵守两个原则 1.为结构体
变量
的成员
变量
分配内存的起始地址必须为成员
变量
内存长度的整数倍。 2.结构体
变量
内存的总大小必须为sizeof(结构体成员
变量
)(最大的)的整数倍。 struct Demo{ char a;//sizeof(char)=1 int b;//sizeof(int)=4 flloat c;//sizeof(float)=4 double d;//sizeof...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章