static 변수 질문있습니다
두번 째 코드에서 initialized = 1 로 바꿔주고
initialize(); 함수로 다시 들어갈때
static int initialized = 0; 을 다시만나는데 여기서 다시 0이 되는게 아닌건가요?
답변 2
1
제가 자세한 설명을 안 달아놔서, 제가 봐도 오해할 수 있겠네요.
강의 자료의 해당 내용은 즉시 수정했습니다.
static 변수는 한 번 초기화되면 그 다음부터는 초기화가 되지 않습니다.
오로지 재할당만 가능하죠.
그래서 static int initialized = 0; 을 몇 번이라도 다시 만나도 해당 문장은 최초 한 번만 실행되고 그 다음부터는 무시합니다.
값의 재할당은 가능하기 때문에 1을 넣었을 때 1로 변해있습니다.
좋은 질문 주셔서 감사드립니다.
0
추가 질문있습니다.
initialized = 1;
이 줄이 재할당 역할을 한 것이라면 출력을 네 번 해도
초기화...
초기화가 완료되었습니다.
초기화가 완료되었습니다.
초기화가 완료되었습니다.
이렇게 나오는게 맞나요?
int main() {
initialize();
initialize();
initialize();
initialize();
취소선으로 표시한 줄이 없다고 하면
출력값이
"초기화..."
"초기화..."
인가요?
#include <stdio.h>
void initialize() {
static int initialized = 0;
if (!initialized) {
printf("초기화...\n");
initialized = 1; << '이 부분'
} else { printf("초기화 완료되었습니다.\n");
}
}
int main() {
initialize();
initialize();
return 0;
}
1
네, 맞습니다. 출력 4번 했을 시
초기화...
초기화 완료되었습니다.
초기화 완료되었습니다.
초기화 완료되었습니다.이렇게 출력됩니다.
네, 맞습니다. 재할당이 없는 경우에는
초기화...
초기화...
이렇게 출력됩니다.
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
39
2
26년 1회 실기 해설 강의
0
54
2
53번 4-1 자료 오류 있는 것 같습니다.
0
70
2
7번문제
0
58
2
C언어 변형문제 9번문제 Pdf 수정요청
0
46
2
메서드 오버드라드
0
47
2
실수
0
46
1
공부 우선순위 우선강의 알려주세요
0
86
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
47
2
25년 2회 기출 5:40 질문입니다.
0
40
2
모의고사1회 3번 파이썬문제
0
73
2
C언어 출제변형 6번 문제
0
50
2
c언어 출제변형 강의 질문
0
31
2
28:40
0
33
2
C : 언어 배열과 문자열 수업자료
0
29
2
파이썬 리스트, 딕셔너리 질문
0
41
2
모의고사 관련 질문 건
1
68
3
자료 내용 오류
0
63
2
정적 변수, 정적 메서드(static) v2
0
47
2
v1.2 와 v0.91 PDF
0
101
1
업캐스팅 (부모형태, 자식생성자)
0
51
2
정보처리산업기사 준비중입니다.
0
74
2
실기 D -6
0
105
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
57
3





