
Question
C언어에서 초기화되지 않은 배열을 사용하면 프로그램이 실행되나요?
Solution
초기화되지 않은 배열을 사용하면 컴파일러는 컴파일 및 실행 오류를 생성하지 않습니다.
어레이가 초기화되지 않으면 예측할 수 없는 결과가 발생할 수 있습니다.
따라서 항상 기본값으로 배열 요소를 초기화하는 것이 더 좋습니다.
샘플 프로그램
다음은 초기화되지 않은 배열에 접근하기 위한 C 프로그램입니다 -
Live Demonstration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # include <stdio.h>
int main(void){
int a[4];
int b[4] = {1};
int c[4] = {1,2,3,4};
int i;
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;
}
|
로그인 후 복사
Output
위 프로그램을 실행하면 다음과 같은 결과가 나옵니다 -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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
|
로그인 후 복사
Note
If 우리는 배열을 초기화하지 않았습니다. 기본적으로 가비지 값을 인쇄하고 오류를 표시하지 않습니다.
초기화되지 않은 배열에 접근하기 위해 다른 C 프로그램을 고려해보세요 -
Example
Live Demonstration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # include <stdio.h>
int main(void){
int A[4];
int B[4] ;
int C[4] = {1,2};
int i;
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;
}
|
로그인 후 복사
Output
위 프로그램이 실행되면 다음과 같은 결과가 나옵니다 -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!