C言語の配列の制限は何ですか?

王林
リリース: 2023-08-25 17:21:17
転載
1808 人が閲覧しました

C言語の配列の制限は何ですか?

配列は、同じ型の要素の固定サイズの連続コレクションを格納できるデータ構造です。

配列はデータのコレクションを格納するために使用されますが、配列を同じ型の変数のコレクションと考えるとより便利です。

制限事項

配列の制限事項は次のとおりです:

  • 形成される配列は均一になります。つまり、整数配列には整数値のみ、浮動小数点配列には浮動小数点値のみ、文字配列には文字のみを保存できます。したがって、配列に両方のデータ型の値を同時に持つことはできません。

  • 配列を宣言する場合、配列のサイズを渡すことは必須であり、サイズは定数である必要があります。したがって、メモリが不足していたり​​、メモリが無駄になっている可能性があります。

  • 配列への要素の挿入または削除には、シフト操作が必要です。

  • 配列は境界をチェックしません: C 言語では、配列に入力された値が配列のサイズを超えているかどうかをチェックできません。

  • 添字を使用して入力されたデータは配列サイズを超えるため、配列の外に配置されます。通常はデータまたはプログラム自体の上にあります。

  • これは、控えめに言っても、予測できない結果につながります。さらに、配列サイズの超過をプログラマに警告するエラー メッセージは表示されません。場合によっては、プログラムがハングする可能性があります。

したがって、次のプログラムは望ましくない結果を生成する可能性があります:

int a[10],i;
for(i=0;i<=20;i++)
a[i]=i;
ログイン後にコピー

Example

以下は 2 つの配列の合計を表示する C プログラムです。

リアルタイム デモンストレーション

#include<stdio.h>
void main(){
   //Declaring array with compile time initialization//
   int array1[5],array2[5],sum[5];
   //Declaring variables//
   int i;
   //Printing O/p using for loop//
   printf("Enter the values of array1 :</p><p>");
   for(i=0;i<5;i++){
      printf("array1[%d] : </p><p>",i);
      scanf("%d",&array1[i]);
   }
   printf("Enter the values of array2 :</p><p>");
   for(i=0;i<5;i++){
      printf("array2[%d] :</p><p>",i);
      scanf("%d",&array2[i]);
   }
   printf("Elements in the sum of array1 and array2 are:</p><p> ");
   for(i=0;i<5;i++){
      sum[i]=array1[i]+array2[i];
      printf("%d ",sum[i]);
   }
}
ログイン後にコピー

出力

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

Enter the values of array1 :
array1[0] :2
array1[1] :3
array1[2] :1
array1[3] :2
array1[4] :3
Enter the values of array2 :
array2[0] :4
array2[1] :5
array2[2] :3
array2[3] :2
array2[4] :1
Elements in the sum of array1 and array2 are: 6 8 4 4 4
ログイン後にコピー

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

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート