ホームページ  >  記事  >  バックエンド開発  >  C言語での初期化されていない配列アクセスの概念を説明する

C言語での初期化されていない配列アクセスの概念を説明する

王林
王林転載
2023-09-01 20:53:051110ブラウズ

C言語での初期化されていない配列アクセスの概念を説明する

質問

C言語で初期化されていない配列を使用した場合、プログラムは実行されますか?

解決策

  • 初期化されていない配列を使用した場合、コンパイラはコンパイルエラーや実行エラーを生成しません。

  • 配列が初期化されていない場合、予期しない結果が生じる可能性があります。

  • したがって、配列要素は常にデフォルト値で初期化することをお勧めします。

サンプル プログラム

次は、初期化されていない配列にアクセスするための C プログラムです -

ライブ デモンストレーション

#include <stdio.h>
int main(void){
   int a[4];
   int b[4] = {1};
   int c[4] = {1,2,3,4};
   int i; //for loop counter
   //printing all alements of all arrays
   printf("</p><p>Array a:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i,a[i]);
   printf("</p><p>Array b:</p><p>");
   for( i=0; i<4; i++)
      printf("arr[%d]: %d</p><p>",i,b[i]);
   printf("</p><p>Array c:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i, c[i]);
   return 0;
}

出力

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

Array a:
arr[0]: 4195872
arr[1]: 0
arr[2]: 4195408
arr[3]: 0

Array b:
arr[0]: 1
arr[1]: 0
arr[2]: 0
arr[3]: 0

Array c:
arr[0]: 1
arr[1]: 2
arr[2]: 3
arr[3]: 4

注意

配列を初期化しない場合、デフォルトではガベージ値が出力されます。決してエラーを表示しないでください。

初期化されていない配列にアクセスするための別の C プログラムを検討します -

ライブ デモンストレーション

#include <stdio.h>
int main(void){
   int A[4];
   int B[4] ;
   int C[4] = {1,2};
   int i; //for loop counter
   //printing all alements of all arrays
   printf("</p><p>Array a:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i,A[i]);
   printf("</p><p>Array b:</p><p>");
   for( i=0; i<4; i++)
      printf("arr[%d]: %d</p><p>",i,B[i]);
   printf("</p><p>Array c:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i, C[i]);
   return 0;
}

出力

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

Array a:
arr[0]: 4195856
arr[1]: 0
arr[2]: 4195408
arr[3]: 0

Array b:
arr[0]: -915120393
arr[1]: 32767
arr[2]: 0
arr[3]: 0

Array c:
arr[0]: 1
arr[1]: 2
arr[2]: 0
arr[3]: 0

以上がC言語での初期化されていない配列アクセスの概念を説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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