|
귀하신 답변 감사합니다.
그럼
김성협 님이 쓰신 글 :
: 나머지는 쓰레기값이 채워집니다.
: 채워진다기 보다.. 원래 그 어드레스에있던 값이 그대로 있게되는거죠..
: 초기화 한 만큼만 초기화 됩니다.
: 그건 간단히 테스트 해보면 알겠죠.. 백문이 불여일타란 말이있듯이..
:
: int array[5] = {0,1,2};
:
: for( int i = 0; i < 5; i++ )
: printf( "array[i] = %d\n", array[i] );
:
: ===================================
: 실행하면 다음과 같이 나오겠죠?
:
: array[0] = 0
: array[1] = 1
: array[2] = 2
: array[3] = ??????? => 쓰레기값 (메모리 상태에따라 값이 변동하겠죠?)
: array[4] = ????? => 쓰레기값
:
: 모 재수로 0이 나올 수 도 있겠죠.. 0도 원래 있던값이면 쓰레기값이니.. 헐~
:
: 김상면 님이 쓰신 글 :
: : 제질문은 그게 아님니다.
: : int array[5] = {0,1,2}
: : int array[5] = {0,1,2,}
: : 의 차이를 알고 싶습니다.
: : 저는 int array[5] = {0,1,2}가 나머지 요소는 0으로 초기화 해준다고 들었습니다.
: : 근대 얼마전에 본 책에는 나머지는 쓰레기값으로 채워진다고 하더군요
: : 정확한 답변을 듣고 싶군요
: : 그럼
: :
: :
: : 김성협 님이 쓰신 글 :
: : : 김상면 님이 쓰신 글 :
: : : : 배열의 초기값을 생략이 가능하데 명시된 값외에는 초기화가 일어나지 않는다.
: : : :
: : : : 이말이 뭔말인감요? 저는 학원에서 배울때 무조건 명시되지않은 값은 0으로 초기화 되는줄 아는뎅....
: : : :
: : : : 고수님의 고명한 답변을 부탁드립니다.
: : : : 그럼
: : :
: : : 학원 선생님이 착각을 하셨거나 상면님이 잘못 들었을것 같네요.
: : :
: : : 전역변수나 static변수만 NULL(0)으로 초기화 됩니다. (배열도 포함해서여)
: : : 지역변수는 초기화를 해주지 않으면 쓰레기값이 들어가게 됩니다.
: : : 지역배열변수를 0으로 초기화하는 간단한 방법은 아래 예와 같습니다.
: : : int nTempArray[10] = { 0, };
|