ホームページ  >  記事  >  バックエンド開発  >  C 言語では、配列の範囲外のインデックスとは何ですか?

C 言語では、配列の範囲外のインデックスとは何ですか?

WBOY
WBOY転載
2023-08-27 21:05:051173ブラウズ

C 言語では、配列の範囲外のインデックスとは何ですか?

4 つの要素を含む配列があるとします。その場合、配列のインデックスは 0 から 3 になります。つまり、インデックス 0 から 3 の要素にアクセスできます。

ただし、3 より大きいインデックスを使用すると、範囲外のインデックスと呼ばれます。

境界外の配列インデックスを使用すると、コンパイラはコンパイルできず、実行すらできません。ただし、結果が正しいという保証はありません。

結果は不確実であり、多くの問題を引き起こす可能性があります。したがって、配列インデックスを使用するときは注意することをお勧めします。

サンプル プログラム

次は、配列内のインデックスが範囲外である C プログラムです。

ライブ デモンストレーション
#include<stdio.h>
int main(void){
   int std[4];
   int i;
   std[0] = 100; //valid
   std[1] = 200; //valid
   std[2] = 300; //valid
   std[3] = 400; //valid
   std[4] = 500; //invalid(out of bounds index)
   //printing all elements
   for( i=0; i<5; i++ )
      printf("std[%d]: %d</p><p>",i,std[i]);
   return 0;
}

出力

上記のプログラムを実行すると、次の結果が得られます -

std[0]: 100
std[1]: 200
std[2]: 300
std[3]: 400
std[4]: 2314

説明

このプログラムでは、配列サイズが 4 であるため、配列のインデックスは std になります。 [0]から標準[3]まで。ただし、ここでは値 500 を std[4] に割り当てます。

したがって、プログラムは正常にコンパイルされ、実行されました。ただし、値を出力すると、std[4] の値はゴミになります。そこに 500 を割り当てた結果は 2314 です。

以上がC 言語では、配列の範囲外のインデックスとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。