10.2 상수 사용하기

이번에는 자료형 앞에 const를 붙여서 상수를 사용해보겠습니다.

  • const 자료형 상수이름 = 값;

const.c

#include <stdio.h>

int main()
{
    const int con1 = 1;         // 상수. 선언과 동시에 초기화
    const float con2 = 0.1f;    // 상수. 선언과 동시에 초기화
    const char con3 = 'a';      // 상수. 선언과 동시에 초기화

    printf("%d %f %c\n", con1, con2, con3);    // 1 0.100000 a

    return 0;
}

실행 결과

1 0.100000 a

상수를 선언하는 방법은 변수를 선언하는 방법과 같으며 자료형 앞에 const만 붙여주면 됩니다. 단, 상수는 반드시 선언과 동시에 값을 할당하여 초기화해주어야 하며 초기화를 하지 않으면 컴파일 에러가 발생합니다. 물론 상수도 변수처럼 printf에서 상수 이름을 사용하여 저장된 값을 출력할 수 있습니다.

그럼 const를 붙여서 상수가 된 상태에서 값을 할당해보겠습니다.

const_assign_error.c

#include <stdio.h>

int main()
{
    const int con1 = 1;

    con1 = 2;    // 상수에 값을 할당하면 컴파일 에러 발생

    printf("%d\n", con1);

    return 0;
}

컴파일 결과

const_assign_error.c(9): error C2166: l-value가 const 개체를 지정합니다.

상수에 값을 할당한 뒤 컴파일해보면 컴파일 에러가 발생합니다. 즉, const를 붙여서 상수가 되면 더 이상 값을 할당할 수 없습니다. 완전 고정된 상태죠. 다른 값을 사용하려면 새 상수를 선언해야 합니다.

참고 | const의 위치

const는 자료형 앞에 붙여도 되고 자료형 뒤에 붙여도 됩니다.

  • 자료형 const 상수이름 = 값;
int const con1 = 1;
float const con2 = 0.1f;
char const con3 = 'a';