私は C プログラミング言語で書かれたプロジェクトに取り組んでいます。以下のようなコードスニペットを取得しました
unsigned char value[10];
#define arr() (&value[0])
unsigned char 配列に対して"function"( arr()
) のような'd 変数を定義したのはなぜですか?#define
彼らは変数arr()[1],arr()[2]
などを使用しようとしています。
arr() + 2
に等しいですvalue + 2
。小さなプログラムを実行してみましたが、これらの 2 つの結果から異なる答えが得られました。どのようにそれが可能です。最初の配列のアドレスを に割り当てているためarr()
です。この二つは同じではないでしょうか?
上記のように変数を定義することの重要性を説明できる人はいますか?