【发布时间】:2019-05-04 05:09:32
【问题描述】:
我在 C 中遇到了数组间接寻址的问题。让我们声明一个数组:
int tab[3];
这三个变量如何显示相同的结果?看起来选项卡的内存单元包含地址本身和第一个值。我不明白。
tab
&tab
&tab[0]
【问题讨论】:
标签: c arrays indirection
我在 C 中遇到了数组间接寻址的问题。让我们声明一个数组:
int tab[3];
这三个变量如何显示相同的结果?看起来选项卡的内存单元包含地址本身和第一个值。我不明白。
tab
&tab
&tab[0]
【问题讨论】:
标签: c arrays indirection
当tab 用于预期指针的上下文中时,像int tab[3] 这样的数组会衰减为指向第一个元素的指针。 &tab[0] 显然也是第一个元素的地址。
类似但有点不同的是&tab,因为这实际上是一个int (*)[3]类型的指针,即它指向一个大小为3的整数数组。地址仍然与第一个元素的地址相同tab;但是您可能会观察到增加此类指针的差异,并且在分配 int* x = &tab 时可能会收到警告。
【讨论】: