int a[10];
Run Code Online (Sandbox Code Playgroud)
现在这里和a和a是一样的,我不清楚逻辑为什么会如此.我可以说a的值与&a相同而*(a)是a [0].(但是a不是指针).在动态数组的情况下,我很清楚.
int *da = new int[10];
Run Code Online (Sandbox Code Playgroud)
da的值是基地址,&da给出指针存储的地址,我们deference da到达da [0].
他们不一样.
a是一种int[10]类型; 一个数组.
&a是一个指向int[10]类型的指针.
在某些情况下(传递给函数,当在算术表达式中使用时),a 衰减到一个int*类型.然后,您可以使用指针算法来到达数组的其他元素.这可能是造成你困惑的原因.
da是一种int*类型.
衰弱的唯一因素是函数指针.