这是一个指向数组开头指针的指针吗?

时间:2015-06-17 12:53:01

标签: c arrays pointer-to-pointer

我刚刚用某些代码帮助了某人。他有这个:

char dataArray[10];

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

&dataArray[0]

或只是

dataArray

他用过

&dataArray

他最后是否指向那里的指针?我不确定&dataArray会给他什么。

2 个答案:

答案 0 :(得分:9)

  • &dataArray[0]的类型为char *。这是指向char
  • 的指针
  • dataArray的类型为char[10]
  • &dataArray的类型为char (*)[10]。这是一个指向数组的指针。

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

这里没有一个指向指针。它们只是不同类型的指针。

注意:因为数组衰减属性,char [100]将衰减为char *,例如,当作为函数的文章传递时。功能

答案 1 :(得分:0)

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