Creative Commons License

Software Dev

프로그래밍기본
객체지향
프로젝트관리
알고리즘
데이타베이스

소프트웨어 개발에 필수적이고 필요한 주제에 대한 강의 및 공유

.

프로그래밍기본

닷넷 기반 개발도 결국 소프트웨어 개발입니다. 소프트웨어 개발을 위한 기본기를 다룹니다

리터럴(Literal) 상수

작성자 : 박종명
최초 작성일 : 2008-05-07 (수요일)
최종 수정일 : 2008-05-07 (수요일)
조회 수 : 3404

상수란 변수와는 달리 값을 변경할 수 없는 데이터를 의미한다.
 
즉 아래와 같은 코드에서
int i = 10
 
 i   : 정수형 변수
10 :  상수
 
라고 한다.
 
i 의 현재 값은 10으로 할당되었지만 프로그램 수행 과정중에 다른 정수값으로 변경이 가능하므로 i 를 (정수형) 변수라 한다.
반면, 10 은 값을 변경할 수 없기 때문에 상수인 것이다.
 
그렇다면 위의 코드의 실행 순서를 살펴보자.
대입연산자의 실행 우선순위는 우측의 결과가 먼저 실행되고 좌측으로 값이 복사된다(이 과정을 값이 변수로 assign 된다고 한다)
즉 10 이라는 것이 먼저 실행되고 i 에 10이 복사된다는 것이다.
 
그럼 우측이 실행된다는 의미는 무엇일까?
연산자의 우측에는 10이라는 숫자가 있을 뿐이다.
 
이 말은 10 이 먼저 메모리에 올라간다는 뜻이다.
컴퓨터의 CPU 는 메모리에 존재하는 데이터들만 연산할 수 있다.
(우리가 작성하는 응용프로그램 역시 실행시에는 메모리에 로드 된다는 것을 알고 있다)
따라서 10 이라는 숫자가 내부적으로 먼저 메모리에 로드되고 난 후 i 라는 변수에 복사가 되는 것이다.
 
이렇게 특정 메모리에 10 이라는 정수값이 할당이 되었지만 이 메모리 공간의 이름은 부여되지 않았다.
즉, 메모리할당이 되어 상수가 저장되었으나 그 공간에 이름이 없는 상수를 리터럴(literal) 상수라고 한다.

그림에서 보면 위의 10이라는 메모리 공간은 i 라고 이름이 부여되었다. 그러나 아래쪽의 메모리 공간은 10이라는
값을 저장하고는 있지만 이 공간에 대한 이름은 부여되지 않았다.  단지 숫자 10 이 메모리에 저장된것 뿐이다. 
이렇듯 이름이 없는 상수를 가리켜 리터럴(literal) 상수라 한다.

이와 반대로 이름이 부여된 상수는 심볼릭(Symbolic) 상수라 한다.
아래의 코드를 보자
const int i = 10;
 
const 라는 키워드를 사용하여 상수를 정의하고 있다.
이것은 상수이지만 이름이 있으므로 심볼릭(Symbolic) 상수라 한다.

이름
비밀번호
홈페이지
HH <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요