1-1. auto 지역변수의 특성 이해

문제설명

다음 코드는 함수가 호출될 때마다 지역변수가 어떻게 생성되는지 확인하는 예제입니다. 먼저 출력 결과를 예상한 뒤, 실제 실행 결과와 비교해 보세요.

 

목표

  • 일반 지역변수(auto)가 함수가 끝나면 사라진다는 점을 이해한다.
  • 함수가 다시 호출되면 지역변수가 새로 만들어진다는 점을 이해한다.

요구사항

  • 코드를 읽고 출력 결과를 먼저 예상해 보세요.
  • 왜 그런 결과가 나오는지 설명해 보세요.

 

코드

#include <stdio.h>

void count_auto() {
    int num = 0;
    num++;
    printf("num = %d\n", num);
}

int main() {
    count_auto();
    count_auto();
    count_auto();

    return 0;
}

 

 

출력결과

num = 1
num = 1
num = 1
 
 

 

1-2. static 지역변수의 특성 이해

문제설명

다음 코드는 함수 안에 static 지역변수를 선언한 예제입니다. 출력 결과를 예상한 뒤 실제 실행 결과와 비교해 보세요.

 

목표

  • static 지역변수는 함수가 끝나도 값이 유지된다는 점을 이해한다.
  • 일반 지역변수와의 차이를 비교한다.

요구사항

  • 코드를 읽고 출력 결과를 예상해 보세요.
  • 왜 값이 누적되는지 설명해 보세요.

코드

#include <stdio.h>

void count_static() {
    static int num = 0;
    num++;
    printf("num = %d\n", num);
}

int main() {
    count_static();
    count_static();
    count_static();

    return 0;
}

 

출력결과

 
num = 1
num = 2
num = 3
 

 

1-3. 전역변수의 특성 이해

문제설명

다음 코드는 전역변수를 여러 함수에서 함께 사용하는 예제입니다. 출력 결과를 예상한 뒤 실제 실행 결과와 비교해 보세요.

 

목표

  • 전역변수는 여러 함수에서 공통으로 사용할 수 있음을 이해한다.
  • 값이 한 곳에서 바뀌면 전체 프로그램에 영향을 줄 수 있음을 이해한다.

요구사항

  • 코드를 읽고 출력 결과를 예상해 보세요.
  • 왜 main()에서도 바뀐 값이 출력되는지 설명해 보세요.

코드

#include <stdio.h>

int count = 0;

void increase() {
    count++;
}

void print_count() {
    printf("count = %d\n", count);
}

int main() {
    print_count();
    increase();
    print_count();
    increase();
    print_count();

    return 0;
}
출력결과
count = 0
count = 1
count = 2
 

+ Recent posts