| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 453 人关注过本帖
标题:数组地址
只看楼主 加入收藏
JENNET
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-5-28
收藏
 问题点数:0 回复次数:4 
数组地址
static short int data[5][6]数组起始地址100,元素data[3][2]静态区地址怎么算?100+2*i 吗?
搜索更多相关主题的帖子: 地址 
2006-06-25 09:37
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
收藏
得分:0 
100+5*3*2+2*3

2006-06-25 09:44
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(JENNET)数组地址
以下是引用JENNET在2006-6-25 9:37:52的发言:
static short int data[5][6]数组起始地址100,元素data[3][2]静态区地址怎么算?

元素data[3][2]静态区地址 == 起始地址100 + (3*6+2)*sizeof(short int)

尽量不要去搞物理地址!

[另例] double a[M][N], *pa = &a[0][0];
则:&a[i][j] == pa+i*N+j

关键是记住:
1。C数组是按行存储的。
2。C数组下标从零开始。


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-25 09:52
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

补充一个程序,以说明我的观点。
#include <stdio.h>
main()
{
double x,*px;
char *p;
px = &x;
printf("x at %p\n",px);
p = (char*)px;
printf("x at %p\n",p);

printf("x的右邻 at %p\n",px+1);
printf("x的右邻 at %p\n",p+1);
}
//VC编连后运行结果:
x at 0012FF78
x at 0012FF78
x的右邻 at 0012FF80
x的右邻 at 0012FF79


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-25 10:12
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-25 13:18
快速回复:数组地址
数据加载中...
 
   



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

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