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
21
1
포인터 증감 또는 값 증감
0
18
1
배열 포인터 함수 관련
0
21
1
실기 이론 통합 요약본 버전
0
23
1
업캐스팅 3번 문제 예시
0
33
2
push pop 설명 되어있는 강의가 몇강인가요?
0
47
1
모의고사 파일오류
1
77
3
모의고사 다운
0
53
1
업캐스팅 원칙
0
65
2
6분46초
0
57
2
공략법
0
65
1
모의고사 파일과 이론파일 업데이트
1
74
3
이론 pdf 다운은 어디서 하나요?
0
72
2
13분 40초
0
65
2
정보처리기사 26년 실기 2회 네트워크 부분
0
78
2
기출문제 재탕
0
57
1
뻬먹은 코드
0
47
1
기출문제 재탕
0
37
0
모의고사1회 2번문제 뭔지 모르겠네요 강의올려주시면안될까요?
0
51
1
영상 다운로드는 안되나요?
0
81
1
26년2회 실기기출은 언제쯤...
0
126
2
이론 공부법 요약본 버전 업데이트 문의
0
109
2
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
115
2
조건 반복문 질문: for 문 ?
0
92
1





