gpt4 book ai didi

c++ - 为什么在 C++ 中的静态数组中 &a 和 a 相同?

转载 作者:太空狗 更新时间:2023-10-29 23:48:47 25 4
gpt4 key购买 nike

int a[10];

这里的&a和a是一样的,我不太明白逻辑为什么会这样。我可以说 a 的值与 &a 相同并且 *(a) 是 a[0]。 (但是 a 怎么不是指针)。对于动态数组,我很清楚。

int *da = new int[10];

da的值是基地址,&da给出了指针存放的地址,我们推导da到达da[0]。

最佳答案

它们不一样。

a 是一个 int[10] 类型;一个数组

&a 是指向 int[10] 类型的指针。

在某些情况下(传递给函数,在算术表达式中使用时),a 衰减int* 类型。然后,您可以使用指针算法 到达数组的其他元素。这可能是造成您困惑的原因。

da 是一个 int* 类型。

唯一衰减为自身的东西是函数指针

关于c++ - 为什么在 C++ 中的静态数组中 &a 和 a 相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52870247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com