• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

1차원 배열 , 2차원 배열 질문이요!

20.04.08 22:02 작성 조회수 240

0

1차원 배열에서 

int a[3] ;

printf("%d"\n, a[0]);

return 0;

이 결과값이 0가 나와야 되는거 아닌가요?

int a[3][2];

printf("%d"\n, a[0]a[1]);

return 0;

이 결과 값도 0가 나와야 되는거 아닌가요? 

계속 -858993460 이런식으로 나오는데 ..

배열선언하고 인덱스 안에 아무것도 안넣으면 0로 되어있는걸로 알고있는데 

44번문제에서 선생님의 답도 그대로 실행시켜보니 0대신 -858993460이 들어가서 나옵니다.

제가 알고 있는 개념이 잘못된 건가요?

답변 2

·

답변을 작성해보세요.

1

main()함수 위에 전역변수로 배열을 선언하면 0으로 초기화됩니다. 하지만 main()함수 안에서 지역변수로 선언된 배열은 컴파일러에 따라 0으로 초기화될 수도 있고, -858993460과 같은 의미없는 값으로 초기화되기도 합니다.

지역변수를 모두 0으로 초기화하고 싶으면 변수를 선언할 때 int a[3]={0, }; 으로 하면 됩니다. 

0

dmsgkrkt1님의 프로필

dmsgkrkt1

질문자

2020.04.23

감사합니다!