dreamian   6년 전

궁금한 것이 있어 질문합니다.

변수를 선언할 때, 선언의 위치에 따라 값이 변하기도 하고 안 변하기도 하는데 그 이유가 궁금합니다.

예를 들어 주어진 소스코드에서 12번째 라인과 16번째 라인에 변수를 선언하는 차이가 있는지 궁금합니다.

저의 경우 12번째 라인에 변수를 선언하면 값이 바뀌지 않고 그대로 '2'가 출력되었습니다.

하지만 for문 내인 16번째 라인에 넣은 경우 값이 계속 바뀌었습니다.

굉장히 기본적인 질문일 수 있는데 C 환경의 경우는 변수를 선언하는 그 시점에서만 값이 변하는건가요?


djm03178   6년 전

16번째 줄에 선언한다는 말은, for문이 돌 때마다 계속 새로운 x가 만들어지고 그 값은 그 시점에서의 ans.x+ans.y가 된다는 것을 의미합니다.

반면에 12번째 줄에 선언한다는 건 처음 main 함수가 시작되고 ans.x=1, ans.y=1; 상태에서 둘을 더한 값으로 x를 초기화한 거고, 이 문장이 앞으로 더이상 실행될 일은 없습니다.

dreamian   6년 전

정말 감사합니다 ㅠㅠ

댓글을 작성하려면 로그인해야 합니다.