반응형

상수란 말씀하신 것처럼 값을 가지는 변수이나 그 값을 바꿀 수 없는 변수입니다.

즉 한번 메모리에 변수를 지정하고 그 변수에 값을 초기화하고 난 그 이후에는 값을 바꿀 수 없는

변수를 상수라고 일컫습니다. 다음과 같은 경우, PI가 상수가 되겠죠.

const float PI=3.14f; // C

public static final float PI=3.14f; // Java

반면 리터럴은 이러한 변수 및 상수에 저장되는 값 자체를 일컫습니다.

정수 리터럴, 실수 리터럴, 문자열 리터럴 이런 것들이 프로그래밍 언어의 한 요소로서

리터럴이라고 불리는 겁니다.

정수 리터럴 ---> 10, 1, 1000 등등
실수 리터럴 ---> 10.1, 10e3 등등
문자열 리터럴 ---> "System" "Exit" 등등

쉽게 얘기하면 변수나 상수는 메모리에 할당된 공간(내지는 그 이름, 사실 이보다는 바인딩이라고 해서

좀더 복잡한 얘기를 해야하지만 질문 내용과 무관하므로 생략하도록 하겠습니다.)이라면 리터럴은

이 공간에 저장되는 값이라고 할 수 있습니다.

===========================================================================================

바로 값이 되는 상수를 말하는 거죠.

보통 프로그래밍을 할때 변수라는 걸 사용하는데.
이 변수라는건 여러가지가 결합된 요소로 볼 수 있습니다.
변수명, 주소, 공간, 형식이란 걸로 결합이 됩니다.
변수명이란 식별자로 해당 메모리 주소를 참조해서 지정된 형식으로 데이타를 읽거나 쓸 수 있는것이죠.
이에 반해서 상수란건 동일하게 구성이 되지만 쓰기연산이 금지된 겁니다.

읽기만 가능하고 쓰기가 불가능해서 항상 같은 값을 유지하자는 거죠.

리터럴은 다시 변수명이란게 사라진겁니다.

이름같은 식별자를 통하지 않고. 바로 값이 되는 상수들을 특별히 리터럴이라고 합니다.

숫자 상수 10이나 문자 상수 'A' 문자열 상수 'ABC' 이런것들이 리터럴이죠.

C에서는 특별히 '\xx'같은 형태를 이스케이트 캐릭터, 확장열이라고 따로 문자상수를 정의해서 사용하기도 합니다

반응형

+ Recent posts