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 サイトの他の関連記事を参照してください。