CS Study/C++

[C++] [7] 정적 변수(static) 상수 변수(const)

23학번이수현 2024. 12. 20. 02:47

1. 정적 변수 (static)

- static 키워드는 지역 변수를 정적 변수(static variable)로 변환한다.

- 이러한 정적 변수는 선언된 블록이 끝나더라도 값을 계속 유지한다.

- 다음 예시를 보면 이해하기 쉬울 것이다.

#include <iostream>

void func(){
    int a = 0;
    static int b = 0;
    a++;
    b++;
    std::cout << a << b << std::endl;
}

int main(){
    func();
    func();

    return 0;
}

 

===== Output =====
11
12

 

- 결과를 보면 a는 함수가 돌때마다 0으로 초기화되어 1로 고정되는 한편

- b는 함수가 돌때마다 0으로 초기화되지 않고 기존값을 계승받아 1씩 증가하는 것을 볼 수 있다.

 

2. 상수 변수(const)

- CS에서 상수란 '변하지 않는 값'을 의미한다. 즉, 원주율이나 ln2와 같은 항상 값이 변하지 않는 것을 선언할 때 유용하다.

- 다음과 같이 선언이 가능하다.

const int pi = 3.14;

 

- 이러한 상수는 한번 선언하고 다른 값으로 초기화 하려하면 오류를 발생시킨다.

const int pi = 3.14;

pi = 3; //error!!!!!