...ポインタを使用するまで、配列への参照が機能しないのはなぜですか?
int a[5] = {1,2,3,4,5}, int *p = a;
int *& ref = p;
しかし、なぜ動作しないのは?
int a[5] = {1,2,3,4,5};
int*& ref = a;
両方a
とp
はポインタであり、同じ値(a[0]
のアドレス)を有します。 ポインタ(p
)を使用して配列を参照すると、非常にうまく動作します。
しかし、私はその配列a[]
を直接参照すると動作しません...なぜですか?
のような配列への参照を取得することができます配列名は、「アドレス定数」ではありません。これは、配列参照が生成する一時的な配列にconst参照をバインドすることができるためです。 – Quentin
* static * arrayのアドレスはアドレス定数です。 * local *配列のアドレスはありません。 – AnT