声明变量

来源:百度知道 编辑:UC知道 时间:2024/06/02 04:06:37
既然声明一个变量系统并不会自动分配任何内存,那么我的程序:
int i;
printf("%d\n",i);
的输出结果是:37814176
这是怎么回事?

声明变量是要分配内存的,谁说不分?

只是你没个他赋值的话,他的值是未知的。。

所以会有个不确定的值。

int i;
printf("%d\n",i);
分析楼主的这段代码,申明了变量i,但是有没有赋值,所以在C语言里没有赋值的变量的数为垃圾数,这个i又是声明的int的整形的类型,那么垃圾数为37814176,楼主可以试试,只要不赋值的变量都是这个垃圾数!

"既然声明一个变量系统并不会自动分配任何内存"

这是谁说的?

可能是在该变量声明之前main()函数有用过i,所以i就有值。

声明了一个变量,就是给它分配了一个地址
但是你没有给他初始化就直接输出,所以你的那个结果是属于乱码来的,没有任何实际意义

声明变量后系统会为变量申请一个空间,不论他是变量或者指针。但是如果不给其赋值的话,它的值为当前所指向的内存的值,指针的话为当前改指针中所指向的位置的值。其值不固定。