| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 675 人关注过本帖
标题:解释这个程序
只看楼主 加入收藏
shlg1229
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-9-24
收藏
 问题点数:0 回复次数:12 
解释这个程序
我好菜,这个都做不起~~~

#include"stdio.h"
main()
{
int j=0,a[5],i=123456;

while(i)
{
a[j]=i%10;
i/=10;
j++;
}
for(j=0;j<6;j++)
printf("%d\n",a[j]);

}
这个的编译结果竟然是
6
5
4
3
2
5
为什么啊??请大家解释一下。

[此贴子已经被作者于2007-11-1 15:55:11编辑过]

搜索更多相关主题的帖子: include 
2007-11-01 15:53
shlg1229
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-9-24
收藏
得分:0 

在 TurboC环境下编译结果全错,上面的结果是在C++环境下编译的结果


个人意见,不代表官方看法
2007-11-01 15:59
jbb9514
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-29
收藏
得分:0 
数组a[5]最多能有5个元素.

相信自己,展望未来。
2007-11-01 16:08
hczsea
Rank: 2
等 级:论坛游民
帖 子:129
专家分:68
注 册:2007-10-23
收藏
得分:0 

虽然数组元素少了,应为a[6]。
但是程序原封不动,小弟在dev-c++上运行都不报错的,而且运行结果都对的。
有没高手解释一下啊

2007-11-01 16:15
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
是没有抱错`````但是你是肯定越界了```你的a最多走到``a[4]``而a[4]的内存和a[5]是紧挨着的``这个时候防问a[5]出现

危险的可能行很小````因为你用的是循环加1``

因为你越界访问的内存没有危险``WINDOWS不回抱错``也不回禁止你的程序运行``虽然达到你的目的``

但是这样做是很要不得的```必须要改正``!!!!







女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-11-01 16:23
shlg1229
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-9-24
收藏
得分:0 
惭愧惭愧~~~连数组少定义一个都没注意到。

个人意见,不代表官方看法
2007-11-01 16:26
shlg1229
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-9-24
收藏
得分:0 
4楼你真牛~~

个人意见,不代表官方看法
2007-11-01 16:27
chinarodney
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-5-3
收藏
得分:0 

在TC里,这个I溢出了,为-1761,因为TC的编释系统INT型为-32768->32767
而在C_FREE 里可以的,输出为
6
5
4
3
2
1
因为C_FREE里一个INT型为4个字节
也许是编辑器的问题吧

2007-11-01 16:30
shlg1229
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-9-24
收藏
得分:0 
是啊,我在Turbo C里编译就是错的。但是在Visual C++中编译就是正确的。晕死~~

个人意见,不代表官方看法
2007-11-01 16:33
crazyboy216
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-6-28
收藏
得分:0 
我同意8楼的,应该是益处了,在TC里面int 占2个字节,表示的最大数为32767,在dec里面int 占4个字节,
你的i=123456明显越界了,所以在tc下全错撒!把i定义为long型的应该就可以了.
DEV上的结果错是因为你粗心把数组少定义一个,a[6]就行了....
2007-11-01 17:22
快速回复:解释这个程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016843 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved