| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1747 人关注过本帖
标题:C语言里数组的问题
只看楼主 加入收藏
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用ltfkdc在2010-7-30 11:26:17的发言:

我知道是越界了,但是书上有个题目就是这样的,他就问我a[10]的值是多少,搞的很郁闷,就来问大家了啊,是个填空题,不知道填什么
你看的是什么书,趁早把它扔了吧

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-07-30 11:36
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:0 
= =
就填:“百度一下,你就知道。谷哥一下,手气不错。”

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-07-30 11:40
ltfkdc
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:11
专家分:8
注 册:2010-7-30
收藏
得分:0 
是俺们大学教材,大哥……被你们无情的鄙视了一把
2010-07-30 11:46
ltfkdc
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:11
专家分:8
注 册:2010-7-30
收藏
得分:0 
回复 5楼 Rexfield
i的数据空间在a[]之后
C的数组寻址算法就是:
a+N  N是下标a是数组的起始地址
所以a[10]=a+10*4=i
……………………………………………………………………………………………………
能不能把数组的寻址算法说清楚点,比如说,告诉我,我把i定义在a[10]前面时,a[10]怎么得到的10。。谢谢
2010-07-30 11:49
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
教材可以和大学说一下,让他们修正这个错误.........

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-30 13:30
lihf198628
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2010-7-30
收藏
得分:2 
应该填——随机值
2010-07-30 14:35
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:2 
不确定~~~~~~~~~~~`就行了啊~~~~~~~~~`````
2010-07-30 14:46
xx342508809
Rank: 2
等 级:论坛游民
帖 子:89
专家分:51
注 册:2010-7-28
收藏
得分:0 
我也在学习C语言~~~~~~~~~希望共同探讨
2010-07-30 14:46
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:0 
以下是引用ltfkdc在2010-7-30 11:49:21的发言:

i的数据空间在a[]之后
C的数组寻址算法就是:
a+N  N是下标a是数组的起始地址
所以a[10]=a+10*4=i
……………………………………………………………………………………………………
能不能把数组的寻址算法说清楚点,比如说,告诉我,我把i定义在a[10]前面时,a[10]怎么得到的10。。谢谢
数组的寻址算法啊,书上应该又说过。网上也有很多,我就不重复造轮子了。
下面说说当i在a[10]前面时为啥得到10:
程序代码:
#include <stdio.h>
int main()
{
    int i,a[10]={5,12,8,20,15};
    for(i=0;i<10;i++)
        printf("%d\t",a[i]);
    printf("%d\n",a[10]);
    return 0;
}
当执行到return 0;的时候我查看了一下内存,发现:
搜索&i:
0x22ff3c: 0a 00 00 00 00 1a 40 00
0x22ff44: f0 f5 86 02 00 b0 fd 7f

搜索&a:
0x22ff14: 05 00 00 00 0c 00 00 00
0x22ff1c: 08 00 00 00 14 00 00 00
0x22ff24: 0f 00 00 00 00 00 00 00
0x22ff2c: 00 00 00 00 00 00 00 00
0x22ff34: 00 00 00 00 00 00 00 00
0x22ff3c: 0a 00 00 00 00 1a 40 00
0x22ff44: f0 f5 86 02 00 b0 fd 7f

0x22ff4c: f0 f5 86 02 00 b0 fd 7f

猜测:C语言是按照字母顺序来排空间的。。。
==========================================
BTW:之所以不用汇编码说问题是因为,我那CB的DisAsm好像有点问题。

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-07-30 15:25
灰色代言
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-07-30 15:37
快速回复:C语言里数组的问题
数据加载中...
 
   



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

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