私は今日面接を受け、次の 2 つの宣言の違いを尋ねられました。
int *A[10];
と
int (*A)[10];
私は知りませんでした。重要なポインター「ポインター」が欠けていると思われる場合は、それもお知らせください。ありがとう。
私は今日面接を受け、次の 2 つの宣言の違いを尋ねられました。
int *A[10];
と
int (*A)[10];
私は知りませんでした。重要なポインター「ポインター」が欠けていると思われる場合は、それもお知らせください。ありがとう。
1 つ目は への 10 個のポインターの配列を宣言しint
、2 つ目は 10 個int
の配列へのポインターを宣言します。
は[]
よりもきつくバインド*
されるため、最初のものは同等に書くことができます
int *(A[10]);
与えられた
int *A[10]; // an array of 10 int pointers
単項の相対的な優先順位*
と[]
これを同等にします
int *(A[10]); // same
2番目の宣言は、その暗黙の順序を次のように変更します
int (*A)[10]; // a pointer to an array of ten ints