1

我一直在帮助某人编写一些代码。他有这个:

char dataArray[10];

然后想得到一个指向数组开头的指针。而不是使用:

&dataArray[0]

要不就

dataArray

他曾经

&dataArray

他最终得到了一个指向那里的指针吗?我不确定&dataArray会给他什么。

4

2 回答 2

9
  • &dataArray[0]是类型char *。那是一个指向char.
  • dataArray是类型char[10]
  • &dataArray将是类型char (*)[10]。那是一个指向数组的指针。

除此之外,将相同,即它们指向相同的地址,但它们的类型不需要兼容。

它们都不是这里的指针。它们只是具有不同类型的指针。

注意:因为数组的衰减属性char [100]会衰减为 a char *,例如,当作为函数的参数传递时。

于 2015-06-17T12:55:26.430 回答
0

dataArray 和 &dataArray[0] 指向数组的第一个索引的地址,所以它们是相同的,但是 &dataArray 将指向整个数组的地址,或者我们可以说它会给出整个 10 索引数组的地址位于(整体)

于 2015-06-17T13:14:20.620 回答