我刚刚用某些代码帮助了某人。他有这个:
char dataArray[10];
然后想要一个指向数组开头的指针。而不是使用:
&dataArray[0]
或只是
dataArray
他用过
&dataArray
他最后是否指向那里的指针?我不确定&dataArray
会给他什么。
答案 0 :(得分:9)
&dataArray[0]
的类型为char *
。这是指向char
。dataArray
的类型为char[10]
&dataArray
的类型为char (*)[10]
。这是一个指向数组的指针。除此之外,值将是相同的,即它们指向相同的地址,但它们的类型不需要兼容。
这里没有一个指向指针。它们只是不同类型的指针。
注意:因为数组衰减属性,char [100]
将衰减为char *
,例如,当作为函数的文章传递时。功能
答案 1 :(得分:0)
dataArray和& dataArray [0]指向数组的第一个索引的地址,因此它们是相同的,但& dataArray将指向整个数组的地址,或者我们可以说它将给出地址整个10索引数组所在的位置(作为一个整体)