我一直在帮助某人编写一些代码。他有这个:
char dataArray[10];
然后想得到一个指向数组开头的指针。而不是使用:
&dataArray[0]
要不就
dataArray
他曾经
&dataArray
他最终得到了一个指向那里的指针吗?我不确定&dataArray
会给他什么。
我一直在帮助某人编写一些代码。他有这个:
char dataArray[10];
然后想得到一个指向数组开头的指针。而不是使用:
&dataArray[0]
要不就
dataArray
他曾经
&dataArray
他最终得到了一个指向那里的指针吗?我不确定&dataArray
会给他什么。
&dataArray[0]
是类型char *
。那是一个指向char
.dataArray
是类型char[10]
&dataArray
将是类型char (*)[10]
。那是一个指向数组的指针。除此之外,值将相同,即它们指向相同的地址,但它们的类型不需要兼容。
它们都不是这里的指针。它们只是具有不同类型的指针。
注意:因为数组的衰减属性char [100]
会衰减为 a char *
,例如,当作为函数的参数传递时。
dataArray 和 &dataArray[0] 指向数组的第一个索引的地址,所以它们是相同的,但是 &dataArray 将指向整个数组的地址,或者我们可以说它会给出整个 10 索引数组的地址位于(整体)