Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

配列の範囲外インデックスとは何ですか-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\n",i,std[i]);
   return 0;
}

出力

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

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

説明

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

したがって、プログラムは正常にコンパイルおよび実行されます。ただし、値を出力している間、std[4]の値はガベージです。 500を割り当てた結果、2314になります。


  1. C#の配列クラスとは何ですか?

    Arrayクラスは、C#のすべての配列の基本クラスです。これは、システム名前空間で定義されます。 Arrayクラスは、配列を操作するためのさまざまなプロパティとメソッドを提供します。 配列クラスのプロパティは次のとおりです- 次の表は、Arrayクラスの最も一般的に使用されるプロパティの一部を示しています。 Sr.No プロパティと説明 1 IsFixedSize 配列のサイズが固定されているかどうかを示す値を取得します。 2 IsReadOnly 配列が読み取り専用かどうかを示す値を取得します。 3 長さ 配列のすべての

  2. JavaのArrayIndexOutOfBoundsExceptionとは何ですか?

    配列はデータ構造/コンテナ/オブジェクトです 同じタイプの要素の固定サイズの順次コレクションを格納します。配列のサイズ/長さは作成時に決定されます。 配列内の要素の位置は、インデックスまたは添え字と呼ばれます。配列の最初の要素はインデックス0に格納され、2番目の要素はインデックス1に格納されます。 配列内の各要素には、配列の名前とそれに続く角かっこで囲まれた必要な要素のインデックスを含む式を使用してアクセスします。 System.out.println(myArray[3]); //prints 1457 一般に、配列は固定サイズであり、各要素はインデックスを使用してアクセスされま