首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

宣言一个变量,有没有对它进行内存空间分配和初始化

2012-09-14 
声明一个变量,有没有对它进行内存空间分配和初始化?声明一个变量,有没有对它进行内存空间分配和初始化?比

声明一个变量,有没有对它进行内存空间分配和初始化?
声明一个变量,有没有对它进行内存空间分配和初始化?
比如int a;
char* p=&a;

这里a有没被分配空间?
即使分配了空间,那么指针p这样定义可以吗?

[解决办法]
1.分配空间了,这句就分配了int a;但是没初始化,需要自己来做,比如:int a=0;

2、这样用指针是可以的
[解决办法]
分配了,但是其值是不确定的;p就是指向a的
[解决办法]

探讨
那么这里仅仅是声明变量,又不是静态全局区,是不是就没有被分配空间??
指针指向一个没有被分配空间的变量,可以吗?
引用:
仅声明的话没有分配内存,定义时分配。


[解决办法]
下个断点,开任务管理器,看看执行下一步的时候内存有没有增加,有的话就分配了,没的话就没分配
[解决办法]
探讨
声明一个变量,有没有对它进行内存空间分配和初始化?
比如int a;
char* p=&a;

这里a有没被分配空间?
即使分配了空间,那么指针p这样定义可以吗?

[解决办法]
4楼正解,但是要针对楼主所说为局部变量时:编译的时候是不会分配内存的,只有到运行用的时候才会分配
未初始化全局会在主函数开始前进行清零初始工作。也是发生在运行时!
[解决办法]
在<<c traps and pitfalls>>中写得很清楚...第四章:声明和定义..
声明语句:int a;//这个语句说明a是一个整形变量,同时为a分配了存储空间;

声明语句:int a = 7;//在定义a的同时也为a明确指定了初始值.不仅为a分配了内存,也说明了在该内存中应该存储的值...
[解决办法]
当然有分配空间了
就像一个空的杯子一样
初始化是往杯子里装东西,比如装水,或者酒,或者醋

探讨
声明一个变量,有没有对它进行内存空间分配和初始化?
比如int a;
char* p=&a;

这里a有没被分配空间?
即使分配了空间,那么指针p这样定义可以吗?

热点排行