[问题] 三维阵列?

楼主: nsysukober (安安)   2014-11-21 19:46:20
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
问题(Question):
想问的问题是以下
int a[5][10][15];
printf("%d\n", &a[2] - &a[0]);
printf("%d\n", a[2] - a[0]);
第一个 printf 是 2 第二个是 20
我知道如果只有a[2]是指"值",但目前是只有宣告但没有给值,那会? 是代表什么意思?
如果加了 &a[2] 意思是他的位址吧? 但想很久还是没办法推出是怎么出现这两个答案的
对于三维阵列非常的不了解
谢谢哦:)
作者: CaptainH (Cannon)   2014-11-21 20:27:00
如果是二维,你知道原因吗
作者: fireslayer (fireslayer)   2014-11-21 20:27:00
没给值里面都是乱值 相减=20是刚好
作者: CaptainH (Cannon)   2014-11-21 20:29:00
先了解阵列decay和指标相减的意思,就会发现这很简单
作者: fireslayer (fireslayer)   2014-11-21 20:33:00
抱歉看错&a[2]-&a[0]=2 是说位置差两格a[2]-a[0]=20是说位置差20格 两个型态不同所以计算出来格子大小也不同所以差几格也不同
作者: s25g5d4 (function(){})()   2014-11-23 01:01:00
这不是期中考题吗 w

Links booklink

Contact Us: admin [ a t ] ucptt.com