※ 引述《lalaboom (lalaboom)》之铭言:
: 之前我的认知阵列名称是一个常数指标,非指标常数喔,
: 1. 请问这个叙述对吗?
: 现在有阵列 int b[2];
: int a[2][3];
: 2. 请问为什么 b 跟 &b 两个address会一样呢?
: 我可以理解 a, a[0], &a[0][0] 这3个一样,
: 但是type不同,还是说这个认知也是错的XD
: 3. 阵列在内存里面除了宣告出来的连续空间,
: 阵列名称是否会有另外像宣告指标一样有一个变量空间吗?
: 关于2之前好像有看到说&b = b 是定义好的 (compiler ? )
: 关于以上问题可能叙述的不是很好,
: 有需要我再补充,
: 恳请各位解惑 ~ 3Q
先不要管 l-value 跟 r-value 的问题,
这些真的都不重要,重要的是生成后的机械码。
不过本人从来没去认真想过 &b 真正存在的价值,
是为了使程式更加安全吗?像是:
宣告:char b[16];
void func(char (*arr)[16]);
呼叫:func(&b);
强制指定输入的阵列长度?
不然到底什么时候会用到啦~?╮( ̄▽ ̄")╭