次の配列があります。
int array[]={0,1,2,3,4};
3
角かっこを使用せずに配列リスト内の要素を出力する必要があります。だから私は使用しないでください:
printf("%d",array[3]);
角括弧を使用せずに同じことを達成するにはどうすればよいですか?
array[n]
と同等*(array + n)
です。
あなたはただ使うことができます*(array + 3)
。これは と構文的には異なりarray[3]
ますが、機能的には同じです。
この式array + 3
は、配列内の 4 番目の要素 (インデックス番号 3) のアドレスを、要素のサイズに合わせて適切にスケーリングして提供します。つまり、 で要素のアドレスを取得するのと同じ&(array[3])
です。
次に、*
逆参照により、そのアドレスの値が (正しい型で) 抽出されます。
n 番目の要素を表示するには、 を知っていarr[n-1] == *(arr+n-1)
ます。C の配列は 0-index であるため、n-1 が使用されています。