MyException - 我的异常网
当前位置:我的异常网» C语言 » 数组行?解决方法

数组行?解决方法

www.MyException.Cn  网友分享于:2013-02-20  浏览:4次
数组行?
本帖最后由 GioPna 于 2013-01-24 18:03:29 编辑
《C语言程序设计 现代方法》
12.4.2 处理多维数组的行
处理二维数组的一行中的元素,该怎么办呢?再次选择使用指针变量p。为访问到第i行的元素,需要初始化p使其指向数组a中第i行的元素0:
p=&a[i][0];

----------------------------------------------------

问题:
  1.数组在计算机的内部是以行序存储。也就是说,无论多少维数组,它都被存储为一行
    书本所说的第i行是什么意思?
  2.如果,是三维或以上的数组,它的行是指什么?

------解决方案--------------------
内存是平坦的,一维的,这是物理上的。
所谓的一维数组,二维数组,三维数组……都是逻辑上的。
所谓的“行”,也是逻辑上的说法。
其实只有一维数组,所谓二维数组,它是一个一维数组,数组的每个元素(即“行”)是个数组;
所谓三维数组,它是一个一维数组,数组的每个元素是个一维数组(该一维数组的元素是是数组)
依次类推。
给定:
int a[2][2][2] = {
 { { 0, 1, }, { 2, 3, }, },
 { { 4, 5, }, { 6, 7, }, },
};
它的内存大概像这样:

           
------解决方案--------------------
.
------解决方案--------------------

           
------解决方案--------------------
.
------解决方案--------------------

           
------解决方案--------------------
.
------解决方案--------------------

a[1][1][1] 
------解决方案--------------------
7
------解决方案--------------------

a[1][1][0] 
------解决方案--------------------
6
------解决方案--------------------

a[1][0][1] 
------解决方案--------------------
5
------解决方案--------------------

a[1][0][0] 
------解决方案--------------------
4
------解决方案--------------------

a[0][1][1] 
------解决方案--------------------
3
------解决方案--------------------

a[0][1][0] 
------解决方案--------------------
2
------解决方案--------------------

a[0][0][1] 
------解决方案--------------------
1
------解决方案--------------------

a[0][0][0] 
------解决方案--------------------
0
------解决方案--------------------

           
------解决方案--------------------

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有