인프런 커뮤니티 질문&답변

권준혁님의 프로필 이미지
권준혁

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-C

2979번 트럭 주차 궁금한 것이 있습니다.

작성

·

362

0

https://www.acmicpc.net/source/share/4e97e76bb0dd438fba134d0aada1c531

위에서 작성하신 코드에서
전역 변수로
int A, B, C, a, b, cnt[104], ret; 를 선언하셨습니다.

그런데
이러한 변수들을 지역 변수로 선언하면 값이 다르게 나오는데 이유를 모르겠습니다.

답변 2

2

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요. 권준혁님 ㅎㅎ 

 

사실 이 사안은 알고리즘 교안에 설명이 되어있습니다. 

잘 질문하셨고 답도 잘 찾은 것으로 보이네요 :)

 

교안에는 이렇게 명시되어있습니다. 

 

전역변수는 지역변수보다 더 많은 크기의 요소를 담을 수 있고 초기화하지 않은 전역변수는 지역변수가 쓰레기값으로 초기화되는 것과는 달리 예상할 수 있는 0으로 초기화되기 때문에 전역변수를 많이 써야 합니다. 그리고 변수명은 항상 간결하게 씁시다. count는 cnt로 result는 ret으로 하는 등 변수명을 짧게 써야 합니다. 

 

또 질문사항있으시면 언제든 말씀 부탁드립니다. 

감사합니다. 

강사 큰돌 올림. 

2

권준혁님의 프로필 이미지
권준혁
질문자

확인해보니까, 지역변수로 cnt배열을 선언하면 초기화가 안되는 문제가 있는 것 같은데
전역변수로 cnt배열을 선어하면 자동으로 초기화가 되는 것 같군요.

권준혁님의 프로필 이미지
권준혁

작성한 질문수

질문하기