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

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

王林
リリース: 2023-09-01 20:53:05
転載
1144 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート