|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个神奇的程序,也许你看懂了什么,但也许你也忽略了什么。
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1538
人关注过本帖
标题:
一个神奇的程序,也许你看懂了什么,但也许你也忽略了什么。
只看楼主
加入收藏
荡气回肠
等 级:
论坛游民
帖 子:33
专家分:40
注 册:2012-5-6
结帖率:
66.67%
楼主
收藏
问题点数:0 回复次数:20
一个神奇的程序,也许你看懂了什么,但也许你也忽略了什么。
#include <stdio.h>
int main()
{
int i = 0;
int a[5];
for(i = 0; i <= 5; i++)
{
a[i] = -i;
printf("a[%d] = %d\n", i, a[i]);
}
getchar();
return 0;
}
[
本帖最后由 荡气回肠 于 2013-10-11 08:32 编辑
]
搜索更多相关主题的帖子:
include
2013-10-09 22:06
举报帖子
使用道具
赠送鲜花
pauljames
等 级:
千里冰封
威 望:
9
帖 子:1555
专家分:10000
注 册:2011-5-8
第
2
楼
收藏
得分:0
你是想说i取到5,导致数组元素和i互相覆盖?
经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-10-09 22:27
举报帖子
使用道具
赠送鲜花
没事学学
等 级:
论坛游民
帖 子:77
专家分:46
注 册:2013-3-28
第
3
楼
收藏
得分:0
差点把我电脑烧了
2013-10-09 22:31
举报帖子
使用道具
赠送鲜花
荡气回肠
等 级:
论坛游民
帖 子:33
专家分:40
注 册:2012-5-6
第
4
楼
收藏
得分:0
回复 2楼 pauljames
嗯,是的。
当循环变量i的值为5的时候将访问a[5],这个时候产生了一个数组越界的错误,并且程序产生了死循环。
在C中a[5]其实等价于*(a+5),也就是说当i的值为5的时候,将对a+5这个内存空间进行赋值。在该程序中a+5这个内存空间正好就是i的地址,也就是说当i的值为5的时候,在for循环中的赋值语句其实等价于i=-i,即将i赋值为-5,因此i<=5永远无法满足。
2013-10-09 22:37
举报帖子
使用道具
赠送鲜花
荡气回肠
等 级:
论坛游民
帖 子:33
专家分:40
注 册:2012-5-6
第
5
楼
收藏
得分:0
回复 3楼 没事学学
呵呵,应该没有那么严重吧。程序应该会一会儿快,一会儿慢。不稳定,最后直接死掉。
2013-10-09 22:39
举报帖子
使用道具
赠送鲜花
tlliqi
等 级:
贵宾
威 望:
204
帖 子:15453
专家分:65956
注 册:2006-4-27
第
6
楼
收藏
得分:0
以下是引用
没事学学
在2013-10-9 22:31:57的发言:
差点把我电脑烧了
2013-10-09 22:41
举报帖子
使用道具
赠送鲜花
踩不扁小强
等 级:
论坛游民
帖 子:46
专家分:39
注 册:2013-4-6
第
7
楼
收藏
得分:0
运行时死循环了,开始时不懂是怎么回事。看了大神们的评论明白了一点点。
2013-10-09 23:04
举报帖子
使用道具
赠送鲜花
荡气回肠
等 级:
论坛游民
帖 子:33
专家分:40
注 册:2012-5-6
第
8
楼
收藏
得分:0
回复 7楼 踩不扁小强
给你看看这个,你就应该明白了。
在C语言中,每次函数调用都会使用掉一部分的栈空间,且函数返回后会自动释放掉这部分栈空间。那这些栈空间拿来干什么用呢?局部变量!C语言中的局部变量是在栈空间自动分配的,也就是说函数调用的时候所使用的栈空间就是用于创建局部变量的。
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
运行结果可以知道:局部变量i确实同数组中的第5个元素a[5]在栈上分配空间,因此a[5]就是i。
2013-10-09 23:17
举报帖子
使用道具
赠送鲜花
yuxikuo
等 级:
新手上路
帖 子:2
专家分:0
注 册:2013-8-2
第
9
楼
收藏
得分:0
赞一个
2013-10-09 23:54
举报帖子
使用道具
赠送鲜花
embed_xuel
等 级:
贵宾
威 望:
58
帖 子:3845
专家分:11385
注 册:2011-9-13
第
10
楼
收藏
得分:0
放个没分的帖子故弄玄虚,没什么神奇的
总有那身价贱的人给作业贴回复完整的代码
2013-10-10 08:01
举报帖子
使用道具
赠送鲜花
21
1/3页
1
2
3
快速回复:
一个神奇的程序,也许你看懂了什么,但也许你也忽略了什么。
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.029892 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved