inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

static 변수

첫 코딩 질문입니다.

해결된 질문

57

skaerjgh2

작성한 질문수 2

0

#include<stdio.h>

voidinitialize() {

staticint initialized = 0;

if (!initialized) {

printf("초기화...\n");

initialized = 1;

} else {

printf("초기화 완료되었습니다.\n");

}

}

 

intmain() {

initialize();

initialize();

return0;

}

여기서

출력값:

초기화....

초기화 완료되었습니다.

이해가 안가는데 풀이 한번 부탁드립니다 ㅠ

 

밑에 예제도 한번 풀이 같이 해주시면 감사하겠습니다.

python java c 정보처리기사

답변 2

0

주말코딩

안녕하세요, 아래 코드에 대해서 설명드립니다.

 

#include <stdio.h>

void initialize() {
    static int initialized = 0;
    if (!initialized) {
        printf("초기화...\n");
        initialized = 1;
    } else {
        printf("초기화 완료되었습니다.\n");
    }
}

int main() {
    initialize();
    initialize();
    return 0;
}

 

static 변수는 프로그램이 시작된 이후로 한 번만 초기화되는 변수입니다.

처음에는 초기화...\n 라는 것이 출력되고 이후에는 1로 바뀝니다. 그러면 계속 1로 값을 상주하여 가지고 있게 됩니다.

 

그래서 그 다음에는 !initialized이 되면 C언어는 조건문에 0이 아닌 어떤 숫자가 오든 참이 되고

앞에 있는 NOT(!)을 만나 거짓이 되므로 else로 들어갑니다.

 

그래서 "초기화 완료되었습니다.\n"를 출력합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. skaerjgh2님.

질문해주신 코드는 static 변수를 활용하여 한 번 초기화된 값을 유지하는 예제입니다. 각 부분을 설명드리겠습니다.

#include<stdio.h>

void initialize() {
    static int initialized = 0;

    if (!initialized) {
        printf("초기화...\n");
        initialized = 1;
    } else {
        printf("초기화 완료되었습니다.\n");
    }
}

int main() {
    initialize();
    initialize();
    return 0;
}

코드의 동작 원리:

  • initialize 함수가 호출될 때, static int initialized = 0; 구문은 함수가 처음으로 호출될 때 한 번만 실행됩니다. static 키워드는 변수의 생명 주기가 프로그램이 종료될 때까지 이어지게 하며, 변수가 다른 호출에서도 자신의 값을 유지하게 합니다.

  • 첫 번째 호출: 처음에 initialized는 0으로 설정되어 있고, !initialized 조건이 참(true)이기 때문에 "초기화...\n"이 출력됩니다. 그 후, initialized는 1로 설정됩니다.

  • 두 번째 호출: initialized가 이미 1로 설정되어 있으므로 !initialized 조건이 거짓(false)이 되고, 이때 "초기화 완료되었습니다.\n"이 출력됩니다.

간단히 말해, static 변수는 한 번만 초기화되어 그 이후로는 재할당하지 않는 변수입니다. 따라서 두 번째 이후 호출에서는 이미 초기화가 완료되었음을 출력하게 됩니다.

유사한 내용을 다루고 있는 기존의 답변을 추천드리니, 추가적으로 학습하시는데 도움이 될 거라 생각합니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

26년 1회차 기출 강의

0

50

2

기출문제

0

55

1

C언어에서

0

58

1

포인터 질문

0

56

2

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

0

93

2

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

0

92

2

26년 1회 실기 해설 강의

0

112

2

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

0

105

2

7번문제

0

88

2

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

0

76

2

메서드 오버드라드

0

70

2

실수

0

63

1

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

0

129

1

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

0

70

2

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

0

52

2

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

0

85

2

C언어 출제변형 6번 문제

0

55

2

c언어 출제변형 강의 질문

0

42

2

28:40

0

45

2

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

0

40

2

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

0

57

2

모의고사 관련 질문 건

1

79

3

자료 내용 오류

0

73

2

정적 변수, 정적 메서드(static) v2

0

55

2