작성
·
254
0
답변 1
0
안녕하세요 :)
초기식의 i의 scope도 for문의 { ... } 안입니다.
"scope, 그 중에서도 block scope는 중괄호 안!" 정도로 기억하시면 이해가 수월할 겁니다.
그리고, 첨부해주신 코드 상에서 num보다 i가 먼저 할당되기는 하나,
scope가 동일하기에 메모리에서 사라지는 시점은 같습니다 :)
감사합니다.
참고를 위해 아래 링크를 남겨드립니다 :)
https://stackoverflow.com/questions/35659818/variable-scope-in-for-loops
아아, 그 점이 헷갈리셨군요 :)
네, 각각의 num 하나하나가 새롭게 할당되고 사라질 수는 있어도, 중요한 건 num의 유효 범위가 블럭 이상을 넘어가지는 않는다는 말씀입니다. i도 마찬가지이구요.
제가 말씀드린 "메모리에서 사라지는 시점"이란 더 이상 num이 새로이 할당되지도, 변수값이 유효하지도 않은 시점을 말씀드린 것입니다.
각각의 변수가 생성되고 사라지는 시점에서 혼란이 오셨다면,
"num 변수값을 사용할 수 있는 범위, i를 사용할 수 있는 범위"를 비교해보세요..!
근데 변수 num 같은 경우는 for문 block을 반복수행 할 때마다 메모리에서 사라졌다가 int i = 0;으로 다시 생성되는데 변수 i 같은 경우는 for문이 다 종료되기 전까지는 메모리 상에서 계속 남아있으면서 i++로 업데이트 되는 거 아닌가요??
저는 test case 돌려보니까 두 변수가 사라지는 시점이 다른 거 같아서 scope가 서로 다르지 않을까 하고 질문 드렸었어요..