2015-01-02 2 views
0

[질문 1] (Initialization of a normal array with one default value) 및 [질문 2] (How to initialize an array in C++ objects)를 완료했지만 아래 동작을 이해할 수 없었습니다.배열 초기화 혼동

int main() 
{ 
    int arr[5]; 
    arr[5] = {-1}; // option 1 
    int arr1[5] = { -1 }; //option 2 
    for (int i = 0; i < 5; i++) 
     cout << arr[i] << " "; 
    for (int i = 0; i < 5; i++) 
     cout << arr1[i] << " "; 
} 

옵션 1 제공 : 내가 모두 옵션 1, 옵션 2에 동일한 동작이 표시되지 않는 이유 을 예상대로 간단한 용어로 설명해주십시오 : 쓰레기는 옵션 2 값주는 값입니다. 옵션 1에서

답변

3

, 당신은 단지 유효한 인덱스가 [4][0]을하기 때문에 그런 다음

arr[5] = {-1}; 

범위에서 값을 할당 uninitialzed 배열을

int arr[5]; 

을 가지고있다.

+1

내가 완전히 잘못 생각한 이유를 이해해야한다는 것을 실수로 저지른 것입니다. 그러나 당신의 대답은 옵션 2 에서처럼 초기화하지 않는 인덱스에 값을 할당한다는 것을 이해하게했습니다. 감사합니다! – Unbreakable