[Programming Basic] 상수, 리터럴, 열거형

양영준·2026년 2월 13일

Programming Basic

목록 보기
4/6
post-thumbnail

📌 상수 & 리터럴

상수와 리터럴 둘 다 변하지 않는 값 (데이터)를 의미한다.
두 용어가 비슷한 뜻을 지니고 있어 같은 의미로 혼동하는 사람들이 많이 있다.
하지만 깊게 따지고 보았을 때, 확실한 차이점이 있는 다른 용어라는 것을 알아야 한다.

💡 상수 (Constant)

프로그래밍 언어에서의 상수는 변하지 않는 변수를 의미한다.
이는 단순히 숫자에만 국한되어 있지 않는다.
즉, 상수에 넣는 데이터는 숫자 데이터 뿐만 아니라 클래스나 구조체와 같이 기본형에서 파생된 객체유도형 같은 데이터를 넣을 수도 있다.

참조 변수를 상수로 지정할 때, 참조 변수가 가리키는 메모리의 주소값이 변하지 않는다는 뜻이고 참조 변수에 넣은 인스턴스의 데이터는 변경할 수 있다는 점을 알고 있어야 한다.

C, C++, C# 은 const 키워드를, Java 는 final 키워드를 통해 상수 선언을 한다.

💡 리터럴 (Literal)

리터럴은 소스 코드의 고정된 값을 나타내는 표기법, 변수에 넣는 변하지 않는 데이터를 의미한다.

const int a = 1;

위 코드에서 a 는 상수이고, a 에 저장된 1은 리터럴이다.

간단하게 생각해보았을 때 소스 코드에 하드 코딩된 값들은 리터럴이라고 생각할 수 있다.

💡 열거형 (Enum, Enumerated type)

열거형은 리터럴 역할을 하는 식별자들의 집합을 의미한다.
정수 리터럴 값만 지정이 가능하며, 값을 지정하지 않으면 열거 순서대로 0부터 값이 자동 지정된다.

enum ENUMNAME
{
	VALUE1,
    VALUE2,
    VALUE3 = 3,
    VALUE4
}

위와 같이 enum을 선언했을 때, 열거 순서대로 각각 0, 1, 3, 4 의 값이 지정된다.

enum의 이름을 데이터 타입으로 하여 변수도 선언할 수 있다.

ENUMNAME name = ENUMNAME::VALUE1;

만약 동일한 이름을 가진 식별자가 다른 enum에도 존재하는 경우, 컴퓨터는 두 식별자 중 어떤 식별자인지 모르기 때문에 { enum 이름 } :: { 식별자 이름 } 의 형태로 확실히 지정해줄 필요가 있다.


상수 - 위키백과
리터럴 - 위키백과
[용어] Constant vs Literal : 상수와 리터럴의 차이점?
[C#] 리터럴(Literal)이란?
리터럴(Literal)이란?
상수(constant) 와 리터럴(literal)이란?
Unit 57. 열거형 사용하기
C++ 05.04 - 열거형, enum

profile
학습 내용 정리 순차적 갱신 / 정리 중

0개의 댓글