当前位置: 代码迷 >> C语言 >> [求助]怎么把变量的值归为初始值呢
  详细解决方案

[求助]怎么把变量的值归为初始值呢

热度:117   发布时间:2006-10-31 15:25:25.0
[求助]怎么把变量的值归为初始值呢

各位大虾救命阿
怎么把变量的值归为初始值呢

搜索更多相关的解决方案: 变量  

----------------解决方案--------------------------------------------------------

变量初始值不是自己赋的么


----------------解决方案--------------------------------------------------------
TC 下好象没有特别指明编译器会为变量初始化,不管哪种变量。
如 int a;
若接着就来句输出 a 的值的话,
输出的数可能是零,
也可能是一个莫名其妙的数,
这个数是 a 变量分配的内存中本来就存在的值(2字节中的0与1的序列拼凑而成的整数),
这 a 变量的两字节内存在此前可能就已经被使用过,
若没有被使用过那应该就是零,或者运气好碰巧是零。
----------------解决方案--------------------------------------------------------
不清楚LZ的意思
是要把刚声明的变量初始还是在程序中间把变量的值变回最开始的值

如果是第二种那办法就是 在初始化那个变量A时把初始化的值保存到另一个变量B中
当想让A变量变回初始化时的值那你直接 A=B 就行了
当然也可以通过宏来操作
----------------解决方案--------------------------------------------------------
TC 下好象没有特别指明编译器会为变量初始化,不管哪种变量。
static int a;//a应该默认为0吧.

有的时候我碰到过float,double 也有默认值.不知道是不是编译器的原因.
----------------解决方案--------------------------------------------------------

#include "stdio.h"
#include "conio.h"

main()
{
static int a;
float b;
double c;
printf("a=%d\nb=%f\nc=%lf\n",a,b,c);
getch();
}

运行结果(win-tc下编译):
a=0
b=0.000000
c=0.000000


----------------解决方案--------------------------------------------------------
请问是不是系统在分配与释放内存时并没有将内存单元内的数据初始化为零,
只是将其变成自由的空间?
谁知道原理吗?
----------------解决方案--------------------------------------------------------

该怎么说呢?

个人觉得清楚只是去除系统内存的指针,它并没有把内存里的内容重新归为0,而是定义它为一个可用的自由空间,可是随时被分配。分配过后,它的值自己不会改变。。。大概吧。。。记住就好了喃!


----------------解决方案--------------------------------------------------------

谢谢各位


----------------解决方案--------------------------------------------------------
  相关解决方案