inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

static 변수

static 변수 질문있습니다

해결된 질문

358

doy

작성한 질문수 1

1

두번 째 코드에서 initialized = 1 로 바꿔주고

initialize(); 함수로 다시 들어갈때

static int initialized = 0; 을 다시만나는데 여기서 다시 0이 되는게 아닌건가요?

python java c 정보처리기사

답변 2

1

주말코딩

제가 자세한 설명을 안 달아놔서, 제가 봐도 오해할 수 있겠네요.

강의 자료의 해당 내용은 즉시 수정했습니다.



static 변수는 한 번 초기화되면 그 다음부터는 초기화가 되지 않습니다.

오로지 재할당만 가능하죠.

그래서 static int initialized = 0; 을 몇 번이라도 다시 만나도 해당 문장은 최초 한 번만 실행되고 그 다음부터는 무시합니다.

값의 재할당은 가능하기 때문에 1을 넣었을 때 1로 변해있습니다.

 

좋은 질문 주셔서 감사드립니다.

0

doy

감사합니다!

0

태라

추가 질문있습니다.

  1. 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

주말코딩

  1. 네, 맞습니다. 출력 4번 했을 시

     

     

초기화...
초기화 완료되었습니다.
초기화 완료되었습니다.
초기화 완료되었습니다.

이렇게 출력됩니다.

 

  1. 네, 맞습니다. 재할당이 없는 경우에는

초기화...
초기화...

 

이렇게 출력됩니다.

띄어쓰기

0

17

1

공부 순서

0

18

1

재귀함수 연산법

0

27

2

26년 1회차 기출 강의

0

60

2

기출문제

0

59

1

C언어에서

0

62

1

포인터 질문

0

57

2

실기 공부 시작 하려고 하는데요

0

102

2

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

95

2

26년 1회 실기 해설 강의

0

114

2

53번 4-1 자료 오류 있는 것 같습니다.

0

106

2

7번문제

0

88

2

C언어 변형문제 9번문제 Pdf 수정요청

0

79

2

메서드 오버드라드

0

72

2

실수

0

63

1

공부 우선순위 우선강의 알려주세요

0

137

1

생성자 호출순서 강의 10번 문제 30분대 질문입니다

0

70

2

25년 2회 기출 5:40 질문입니다.

0

54

2

모의고사1회 3번 파이썬문제

0

85

2

C언어 출제변형 6번 문제

0

55

2

c언어 출제변형 강의 질문

0

42

2

28:40

0

45

2

C :  언어 배열과  문자열 수업자료

0

41

2

파이썬 리스트, 딕셔너리 질문

0

57

2