| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 547 人关注过本帖
标题:用寻址公式访问和直接推算访问元素的存储位置有什么区别?
只看楼主 加入收藏
香帅之枫
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:4
专家分:7
注 册:2011-4-24
收藏
 问题点数:0 回复次数:4 
用寻址公式访问和直接推算访问元素的存储位置有什么区别?
设a*b分别是m*n和n*m矩阵,均按行序存储在一维结构中,请问别用两种方法计算a*b的程序。这两种方法是:1.采用二维数组的寻址公式访问元素 2.不采用寻址公式,而直接推算要访问的元素的存储位置。
这个问题中两种方法是想要怎么样访问啊?是想a[i]和*a+i这样两种吗??呵呵好像不是哈!求高手告知
搜索更多相关主题的帖子: 元素 
2011-04-28 00:29
香帅之枫
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:4
专家分:7
注 册:2011-4-24
收藏
得分:0 
不懂啊 高手回复我啊

香帅之枫
2011-04-28 00:30
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
1 和 2 的目的都是取数据  而数据的存放(一维数组)都是一样  如果是要取相同的数据  只是知道数据的首地址 那么只有计算偏移量

偏移量的计算只有根据矩阵的行号和列号来定位 不然不可能准确的找到需要的数据  所以肯定要找到某个数不论你1还是2偏移量都是相等的 只是表现的形式不同而已

例如:a[m][n] 表示一个矩阵m*n  要找到里面的一个元数a[j][i]的值
1) *(a+j*n+i)//二维的计算方法
2) a[j*n+i]//一维

看不出有什么实质的差别  只不过一个是以指针的形式呈现  一个是以数组的形式
2011-04-28 16:44
香帅之枫
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:4
专家分:7
注 册:2011-4-24
收藏
得分:0 
回复 3楼 寒风中的细雨
谢谢回复哈!那么说我的那种理解是对的喽??就是这么回事吗?

香帅之枫
2011-04-28 23:26
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
就是没什么区别。语言表达上形式不的区别而已。

比如 “书在桌上” 和 “桌上有书” 两个说法都在描述同一个事实。
但是由于主语和谓语用的不一样,给人的感觉不一样。不管你如何理解,书和桌子的关系反正还那样。

本来是二维数组的东西,用下标访问,就比较清楚,也符合数学里的记法。
用指针就比较乱,而且由于看着跟数学公式很不一样了,所以可能会混淆视听。
不过这些混淆不了编译器就是了。
2011-05-05 16:51
快速回复:用寻址公式访问和直接推算访问元素的存储位置有什么区别?
数据加载中...
 
   



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

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