易截截图软件、单文件、免安装、纯绿色、仅160KB

百思不得其解的C程序问题,高手请进!

问题描述:
有一简单的C程序,如下:
void foo ( ) {
int i ;
p r i n t f ( "%d " , i ++);
}
int main ( ){ int j ;
for ( j = 0 ; j < 1 0 ; ++j ) foo ( ) ;
}

函数foo里面的变量i没有初始化,但是在有的系统里打印输出的结果是0123456789;而在其它的一些系统里打印输出的结果是另外的情况。
请各位高手解释其原因?
原因就是:系统给变量i分配的内存单元原来就是有内容的,而且这个内容是不确定的。所以打印的结果就会不同了。

这个值是随机的,看系统分配给i内存时,内存里是什么值,就是什么值,所以i的值不确定。

没有初始化就是随机的

原因应该是:原来那个i的内存里面内容不确定所以打印结果不确定吧。

i是局部变量,有没有初始化,系统只分配内存空间,每次分配的空间也可能不一样,空间里都是随机值

写程序一定要注意初使化,不然以后系统维护会非常麻烦.

默认没有初始化的话会是0,所以输出依次是0123456789,但是如果在某些系统中可能不会采用默认初始化这个值,而是按照分配的值,那么就是不确定的,所以就不知道是什么了,随机的……


没有初始化就是随机值啦~

引用
写程序一定要注意初使化,不然以后系统维护会非常麻烦.

深有体会 没有初始化程序会很麻烦的

没有初始化,内容是随机的。
每次的值都一样,是因为循环10次的时候,i的地址都是相同的。


我的打印出来是:
1629525262
1629525263
1629525264
1629525265
都是连续的

你定义的变量i为自动变量,int i和au


相关问答:

execl怎么调用java程序 - C/C++ / C语言

如题,C/C++中的execl怎么调用写好的java程序,
execl("/opt/java1.5/bin/java","MyClass",NULL);
这样的不行哦。

不会.

运行java程序
找工具查看一下那个程序的命令行

搜索下:jni ......

c静态编译另一个文件夹的库函数 - C/C++ / C语言

在根目录/lib中存放一个log.c,log.h,并用下面的语句:
gcc -c log.c
ar crv liblog.a log.o
编译出一个liblog.a静态库,然后在文件夹:/testfile中创建一个test.c和testc.c,test.c中引用了testc.c中定义的方法 ......

求助:C代码改写成VB代码 - VB / 基础类

谁能帮我把下面这些代码改成VB形式的,多谢了,急用~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[],float g ......

磕求C/S源码 - Delphi / 数据库相关

现有paradox数据库使用BDE驱动,拟改为C/S版,增加网络读取数据功能。请哪位大侠,提供源码。
说句不客气的话,用paradox做C/S是自寻死路。
换一个网络数据库

因为不想动大手术,仅能共享几个文件即可。

Da ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号