の両方を使用してアドレスの取得:考えてみましょ角括弧とアンパサンド
int a[2] = {0,1};
int *address_of_second = (&a[1]);
私はそれが& *(A + 1)に変換されますので、この作品と仮定して、&及び*は互いに打ち消し合うが、私はすることができますそれを数えるか、それともコンパイラ固有ですか?つまり、C標準にはこれについて何か言いたいことがありますか?
これはまともな方法ですか? 個人的に私が書くことを考える:
int *address_of_second = a+1
が優れている、あなたは同意しますか?
ありがとうございました。
合意。マシューのポイントに追加するには:あなたの例では、 'a'は配列なので、&a [1]は「配列aの要素1のアドレス」として簡単に読むことができるので、最初のスタイルが一般的により適しています。私の経験上、配列をポインタとして扱うことは、技術的には正しいものの、混乱を招く可能性があります。 – GrahamS