for문에서 지역변수 scope 관련 질문
312
작성한 질문수 7

답변 1
0
안녕하세요 :)
초기식의 i의 scope도 for문의 { ... } 안입니다.
"scope, 그 중에서도 block scope는 중괄호 안!" 정도로 기억하시면 이해가 수월할 겁니다.
그리고, 첨부해주신 코드 상에서 num보다 i가 먼저 할당되기는 하나,
scope가 동일하기에 메모리에서 사라지는 시점은 같습니다 :)
감사합니다.
참고를 위해 아래 링크를 남겨드립니다 :)
https://stackoverflow.com/questions/35659818/variable-scope-in-for-loops
0
근데 변수 num 같은 경우는 for문 block을 반복수행 할 때마다 메모리에서 사라졌다가 int i = 0;으로 다시 생성되는데 변수 i 같은 경우는 for문이 다 종료되기 전까지는 메모리 상에서 계속 남아있으면서 i++로 업데이트 되는 거 아닌가요??
저는 test case 돌려보니까 두 변수가 사라지는 시점이 다른 거 같아서 scope가 서로 다르지 않을까 하고 질문 드렸었어요..
0
아아, 그 점이 헷갈리셨군요 :)
네, 각각의 num 하나하나가 새롭게 할당되고 사라질 수는 있어도, 중요한 건 num의 유효 범위가 블럭 이상을 넘어가지는 않는다는 말씀입니다. i도 마찬가지이구요.
제가 말씀드린 "메모리에서 사라지는 시점"이란 더 이상 num이 새로이 할당되지도, 변수값이 유효하지도 않은 시점을 말씀드린 것입니다.
각각의 변수가 생성되고 사라지는 시점에서 혼란이 오셨다면,
"num 변수값을 사용할 수 있는 범위, i를 사용할 수 있는 범위"를 비교해보세요..!
Export template 안됨
1
63
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
88
3
main 함수에서 왜 int만 선언이 되는걸까요
1
78
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
74
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
78
1
프로토타입과 함수간의 인자 불일치
1
87
2
12.12 헤더 관련 질문
1
74
2
Visual Studio Community 2026 사용 문의
1
167
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
71
2
getchar(), putchar()
1
111
3
강의자리ㅛ
1
92
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
127
2
소스파일안에 여러 파일
1
87
2
F5와 F7의 차이
1
90
2
c = TWO * (a+b); 에서 a와 b는?
1
67
2
; 세미콜론을 붙이는 기준에 문의
1
78
1
Step over 기능 문의
1
64
2
2.6 강의 따옴표 출력 규칙 문의
1
87
2
int main 함수 관련 오류 문의
1
76
2
13.4 words[0]
0
73
2
11.7 함수를 구현해 봤습니다.
1
67
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
71
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
60
2
11.6 fit_str함수를 구현해 봤습니다.
1
58
2





