| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 939 人关注过本帖
标题:数组问题
只看楼主 加入收藏
id3663423
Rank: 2
来 自:浙江
等 级:论坛游民
帖 子:48
专家分:63
注 册:2009-4-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
数组问题
#include<stdio.h>
#include<conio.h>
int main()
{
    int i;
    int a[90];
    for(i=0;i<=100;i++)
        a[i] = i;
    for(i=100;i>0;i--)
        {
            if(i%10==0)
              printf("\n");
            printf("%-4d ",a[i]);               
        }
    getch();
    return 0;   
}
这个数组只有90个元素,但是运行结果还是能输出100-1这100个数...奇怪了...
搜索更多相关主题的帖子: include return 元素 
2011-11-24 13:34
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
收藏
得分:3 
你确实 输出了 那是编译器的 问题
事实上 都知道的 数组 就是指针地址头
那么 你能用一个指针去阅读你们有声明的 地方吗~?可以 但这是错的
你能运行 不代表别人能运行
我觉得 尽力去避免这种 错误
再说 你的 代码
 if(i%10==0)//如果I的值除以10==0 也就是 整数
              printf("\n");//输出换行
            printf("%-4d ",a[i]);    //输出 a【I】
写上一点备注 不行吗~?
我是新人 忽喷
...
零波丽 道
这是我的建议

人又是什么?神造出来的东西。 人是人造出来的东西。
2011-11-24 13:48
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:3 
这就是C的灵活性,也是可能出现错误之所在!

★★★★★为人民服务★★★★★
2011-11-24 14:05
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:3 
以下是引用零波丽在2011-11-24 13:48:04的发言:

你确实 输出了 那是编译器的 问题
事实上 都知道的 数组 就是指针地址头
那么 你能用一个指针去阅读你们有声明的 地方吗~?可以 但这是错的
你能运行 不代表别人能运行
我觉得 尽力去避免这种 错误
再说 你的 代码
 if(i%10==0)//如果I的值除以10==0 也就是 整数
              printf("\n");//输出换行
            printf("%-4d ",a);    //输出 a【I】
写上一点备注 不行吗~?
我是新人 忽喷
...
零波丽 道
这是我的建议

你这不叫注释,叫教学。
2011-11-24 14:12
c_icer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:42
专家分:139
注 册:2011-11-21
收藏
得分:3 
内存是连续的,虽然你的数组只定义了90个,但是,你在赋值的时候赋了100个,后面10个的内存地址是和数组地址连接着的。所以你能读出来,但是如果在中间加上一些其他的操作,就不会这样了。
个人意见。。。

技术成就梦想,细节决定成败……
2011-11-24 15:25
编程弱者
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:35
专家分:103
注 册:2011-11-17
收藏
得分:3 
学习了
2011-11-24 16:38
id3663423
Rank: 2
来 自:浙江
等 级:论坛游民
帖 子:48
专家分:63
注 册:2009-4-15
收藏
得分:0 
以下是引用c_icer在24-11-2011 15:25:06的发言:

内存是连续的,虽然你的数组只定义了90个,但是,你在赋值的时候赋了100个,后面10个的内存地址是和数组地址连接着的。所以你能读出来,但是如果在中间加上一些其他的操作,就不会这样了。
个人意见。。。
把90改50就直接运行不了了...

每多学一点知识,就少写一行代码.
2011-11-24 20:55
fire9can
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:18
专家分:21
注 册:2011-10-20
收藏
得分:3 
学习了
2011-11-24 21:24
星火gavin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:170
注 册:2011-11-5
收藏
得分:3 
想问一下楼上的,我用C-Free 5.0试了一下,如果换成53都可以为啥呀
2011-11-24 21:48
id3663423
Rank: 2
来 自:浙江
等 级:论坛游民
帖 子:48
专家分:63
注 册:2009-4-15
收藏
得分:0 
我最近在看美国人写的那本,c安全编码标准....c就是这么神奇..他不会出错,但是就是不安全啊...

每多学一点知识,就少写一行代码.
2011-11-25 09:54
快速回复:数组问题
数据加载中...
 
   



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

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