易截截图软件、单文件、免安装、纯绿色、仅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


相关问答:

VFP如何调用C函数 - 其他数据库开发 / VFP

请问VFP中如何调用C/C++函数?

你要调用什么功能的函数?要看看VFP中有没有对应的函数,如果有就省着再调用了。如果没有,可以将C/C++函数写个DLL或FLL,然后在VFP调用即可。

十豆三 老师,怎么才能修改自己的 ......

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

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

不会.

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

搜索下:jni ......

C/S项目架构设计----求助 - Java / Java SE

本人正在用Java做一个C/S架构的项目, 
可是由于项目比较大,前期对架构的设计尤其重要,因为后期可能随时会加个功能或者去掉某些功能。 
所以特地寻求如何设计C/S的架构使程序更加面向对象更加易于维 ......

求教c/c++语言相关问题 - C/C++ / C语言

有一10*10矩阵,除去第一个点(0,0)和最后一点(9,9),还有八个点为1,其他都为0,要求用二维数组表示。八个点是随机生成的,编写相关程序表示矩阵所有可能情况。
真心求教各位高手,哎!本人太菜了!呵呵!
......

关于 tiny c 段错误的问题 - C/C++ / C语言

小弟最近在了解关于tiny c 的问题。在linux下准备安装。但安装完成后碰到了一些问题。希望大家能够帮忙解决。以下是安装完成后的执行步骤。
[student@localhost ~]$ tcc -v
tcc version 0.9.25
[student@localhos ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号