数组存储地址计算公式 数组名代表数组第一个元素的地址,二维数组三维数组也这样吗?
数组名代表数组第一个元素的地址,二维数组三维数组也这样吗?
严格地说,数组名代表一个数组,但值等于第一个地址。”第一个地址”是第一个元素/第一个元素的地址,因此没有“第一个元素的第一个地址”或“所有元素的第一个地址”
能详细描述一下顺序存储的数组元素的存放地址的计算方法吗?
元素a(ij)的存储地址应该是数组的基址加上a(ij)之前元素占用的单元数。因为a(ij)位于第i行和第j列,所以在前面的i-1行有(i-1)×n个元素,在第一行的a(ij)前面有j-1个元素,所以在a(ij)前面有(i-1)×n个j-1个元素。
因此,a(ij)的地址计算函数为:LOC(AIJ)=LOC(a11)[(i-1)*nj-1]*D。同样,三维数组a(ijk)以“行优先级顺序”存储,其地址计算函数为:LOC(aijk)=LOC(a111)[(i-1)*n*P(J-1)*P(k-1)]*D。以上讨论假设数组的每个维数的下界为1。更一般的二维数组是[C1。。D1,C2。。D2],其中C1和C2不一定是1。在二维数组中,a(ij)之前总共有i-c1行,d2-c21列,因此i-c1行具有(i-c1)*(d2-c21)元素,并且在第i行的a(ij)之前有j-c2元素。
因此,a(ij)的地址计算函数是:LOC(AIJ)=LOC(ac1c2)[(i-c1)*(d2-c21)j-c2)]*D。
Excel能把三维数组的值直接赋值给单元格吗?
你好!关于将数组赋给excel单元格,数组格式要写得准确,如:={1,2,34,5,67,8,9}这是一个三行三列的二维数组(同一行用半角逗号隔开,而新行应该使用半角分号)这个二维数组可以直接赋给一个单元格:操作是选择一个有三行三列的单元格区域,输入={1,2,34,5,67,8,9}作为上公式位置,然后按Ctrl-Shift-enter键将数组赋给单元格。参见下图。但是对于“三维”数组,Excel可以实现三维参照,即工作表的行、列是二维的,多个工作表一起构成第三维(z方向)。但是,无法同时将三维数据指定给多个工作表中的多个行和列。我不确定你的三维概念是否和我的一致。如果你真的是一个三维数组,你只能用VBA实现一次赋值。如果您需要VBA来实现3D数组分配,请补充您的数组数据或样本,我会再回复。
数组存储地址计算公式 c语言三维数组举例 三维数组地址计算例题
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。