본문 바로가기
개념/혼자 공부하는 C언어

chapter 13) 전역 변수의 사용

by kiseno 2024. 8. 30.
728x90
반응형
SMALL
#include <stdio.h>

void assign10(void);
void assign20(void);

int a;

int main(void){
    printf("before a : %d\n", a);

    assign10();
    assign20();

    printf("after a : %d\n", a);

    return 0;
}

void assign10(void){
    a = 10;
}

void assign20(void){
    int a;
    a = 20;
}

- **전역 변수 선언**: `int a;`
  - 프로그램 전체에서 접근 가능한 정수형 전역 변수 `a`를 선언합니다. 초기값은 기본적으로 0입니다.

- **`main()` 함수**
  1. **전역 변수 초기 상태 출력**:
      - `printf` 함수를 사용하여 전역 변수 `a`의 초기값을 출력합니다. 프로그램이 시작될 때 `a`는 0이므로, "before a : 0"이 출력됩니다.
  2. **함수 호출**:
      - `assign10` 함수를 호출하여 전역 변수 `a`에 10을 할당합니다.
      - 이어서 `assign20` 함수를 호출합니다. 이 함수 내에서는 새로운 지역 변수 `a`를 선언하고, 이에 20을 할당합니다. 하지만 이는 전역 변수 `a`에 영향을 주지 않습니다.
  3. **전역 변수 변경 후 상태 출력**:
      - 두 함수 호출 이후, `printf` 함수를 사용하여 전역 변수 `a`의 값을 출력합니다. `assign20` 함수에서 선언된 지역 변수 `a`는 전역 변수 `a`와는 별개이므로, 전역 변수 `a`의 값은 `assign10` 함수 호출로 인해 10으로 변경된 상태를 유지하고, "after a : 10"이 출력됩니다.
  4. **프로그램 종료**:
      - `return 0;`을 사용하여 프로그램이 성공적으로 실행되었음을 나타내며, 프로그램을 종료합니다.

- **`assign10` 함수**: `void assign10(void);`
  - 이 함수는 전역 변수 `a`에 10을 할당합니다.

- **`assign20` 함수**: `void assign20(void);`
  - 이 함수는 새로운 지역 변수 `a`를 선언하고, 이에 20을 할당합니다. 이 지역 변수는 함수가 종료되면 사라지며, 전역 변수 `a`에는 영향을 주지 않습니다.

728x90
반응형
LIST