xをint x[30]={2,4,8,9,6,3,5,4,7,8,9,6,3,2,}
とA
のような配列をのようなint
へのポインタとして定義するものとします。配列を指す方法の違いは何ですか?
今、私はこれらの違いは何か知りたい:
1)int *A=x[5]
2)int *A ; A=&x[5]
3)int *A=x+5
4)int *A ; *A=x+5
5)int *A ; A=*(x+5)
なぜ番号1,4および5にエラーがありますか?
数字4はエラーですが、数字3はエラーです。なぜこれらは等しくないのですか?
Re: '... xは実際x [0] ...'へのポインタなので、配列とポインタについて説明するときは注意が必要です。 'x'はポインタではなく、配列です。しかし、式(sizeof'の引数以外の場合、 'x + 5'は式です)に現れるとき、配列の最初の要素へのポインタに変換されます。そして、ポインタ演算を扱います。ポインタに5を加えると5つの要素だけポインタが前進するので、 'x + 5 'は配列' x'の要素5を指すようになります。 –