为什么double *数组可以用作数组?我总是把星号看作指针,为什么它可以用作数组呢? 有人会提供一个例子,它如何用作double [],当它只是一个指针时。
答案 0 :(得分:2)
我假设“用作数组”表示下标运算符[]
?
原因是在C和C ++中,下标运算符实际上执行了指针添加。它根本不适用于数组,它会导致数组名称衰减为指针,然后发生指针运算。
对于所有内置类型,
x[y]
定义为
*(x + y)
x
和y
中的哪一个是指针(或指向衰减到指针的数组)并且哪个是偏移量无关紧要。