阿撩 发表于 2016-11-25 19:29:23

求问像定义int a[3][4][2]

定义int a之后,第十个元素怎么计算呢?
求各位大神解答一下 谢谢了~

仰望天上的光 发表于 2016-11-25 23:04:21

int a是一个数组,有且只有3个元素,每个元素都是类型为int的数组,所以它并没有第10个元素。

四十二 发表于 2016-11-26 03:11:06

感觉和楼上学的不是一个c……

按顺序的话是不是应该是?

DarkSE 发表于 2016-11-26 15:10:38


计算:
第一个数:10 / (4 * 2) = 1
第二个数:10 - (4 * 2)*1 = 2= 2.0 / 4 向上取整 = 1 - 1 = 0
第三个数:10 - (4 * 2)*1 = 2 - 1 = 1 % 4 = 1;
eg 23
23 / ( 4 * 2 ) = 2
23 - ( 4 * 2 ) * 2 = 7 = 7.0 / 4 向上取整 = 2 - 1 = 1;
23 - ( 4 *2 )*2 = 7 - 1 = 6 % 4 = 2;

fc1735 发表于 2016-11-26 16:47:08

本帖最后由 fc1735 于 2016-11-26 19:43 编辑

假设你用C,以下编译可以通过
形如 a.....正常来说不会说要取第几个元素,因为每一层都有每一层的意义
我就按照你说的,但自己计算太麻烦了


int b=&a;
b+=sizeof(int)*(10-1);
*(int*)b 即为第10个元素之值


int *c=b;

c即为第10个元素的地址
用*c取值

阿撩 发表于 2016-11-27 09:07:36

四十二 发表于 2016-11-26 03:11
感觉和楼上学的不是一个c……

按顺序的话是不是应该是?

哈哈哈哈哈哈哈哈哈哈 答案是这个

阿撩 发表于 2016-11-27 09:39:59

DarkSE 发表于 2016-11-26 15:10

计算:
第一个数:10 / (4 * 2) = 1


谢谢谢谢!感谢!
页: [1]
查看完整版本: 求问像定义int a[3][4][2]