2014년 8월 19일 화요일

변수의 특징



변수는 다음과 같은 특징이 존재합니다.

  • 변수의 이름(Name) : 변수를 나타내는 이름으로써 메모리상의 주소로 연결
  • 변수의 형식(Type) : 변수에 저장될 값의 종류(Data Type)
  • 변수의 값(Value) :  변수에 할당되어 저장될 값


따라서, 일반적으로 프로그래밍할 때, 변수를 정의(선언)하면, 위 세가지 요소를 정의한다고 보면 됩니다.

변수 선언 예) data_type variable_name = value

  • data_type : 변수의 형식, 값의 종류와 메모리 공간 크기를 정의함
  • variable_name : 변수의 이름, 변수가 위치하는 메모리 공간으로 메핑됨
  • value : 변수의 값, 변수에 값이 할당됨


변수의 이름(Name)

변수의 이름은 사용하는 프로그래밍 언어에서 규정하는 이름정의 규칙(Naming rule)을 사용합니다. 그러나 키워드(Key word)나 연산자(Operator), 그리고 예약어(Reserved word)는 변수명으로 사용할 수 없습니다. 변수명은 변수의 사용 용도나 성격에 맞는 적절한 이름을 선언하는 것이 좋습니다.
모든 메모리는 Byte 단위로 주소가 지정되어 있습니다. 즉, 컴퓨터 시스템에 설치된 4GB 또는 8GB 등의 메모리는 바이트 단위로 주소가 정해져 있으며, OS가 관리하게 됩니다. 변수를 선언하게 되면, OS에게 변수의 데이터형 크기에 맞는 메모리 공간을 요청하게 되고, OS는 메모리를 할당해서 프로그램에게 그 주소를 알려주게 됩니다. 프로그램은 변수의 이름을 이용해서 메핑된 메모리 주소에 접근하게 됩니다.

변수의 형식(Data type)

변수를 선언할 때, 변수 타입을 표기하게 됩니다. 변수 타입은 프로그래밍언어가 제공하며, 타입에 의해 두 가지 추가 속성이 정의 됩니다.
메모리 크기 : 각 타입에 따라 변수가 사용할 수 있는 메모리 크기가 정해져 있습니다. 또한 사용하는 OS 플랫폼에 따라 변수의 메모리 크기가 달라지기도 합니다. 예를 들어, x86 intel CPU 기반에서는 정수형(Integer) 타입의 크기는 4Bytes(32Btis)를 사용합니다. 하지만, x64 intel CPU에서는 8Bytes(64Bits)를 정수형으로 사용합니다. 프로그래밍 언어에서 제공하는 기본 변수형이 어느정도 공간을 사용하는지는 예측해서 프로그램해서는 안되며, 반드시 적절한 연산자나 함수를 사용하여 그 크기를 알아내야 합니다. C언어 또는 C++에는 sizeof 연산자를 사용하여 변수형의 크기를 알 수 있습니다.
예) int nSize = sizeof(int);
값의 형식 : 컴퓨터가 다루는 데이터 형식에는 다양합니다. 정수형, 실수형, 문자형, 그리고 사용자 정의 형식까지 매우 많습니다. 변수의 타입으로 정의된 변수가 다룰 값의 형이 결정됩니다. 값의 종류가 무엇이냐에 따라 변수를 이용한 연산의 종류도 달라집니다.

변수의 값(Value)

선언된 변수에 값을 할당할 수 있습니다. 값은 변수의 형식에 따라 의미가 달라집니다. 예를 들어, 데이터 타입이 문자형(Char)인 변수에는 문자 데이터 값이 들어가고, 주소를 다루는 포인터형 변수에는 메모리 주소 값이 할당됩니다.
위에서, 변수에는 크기가 있다고 했습니다. 제한된 크기에 더 큰 값을 넣을 수 없듯이 변수에 값을 할당할 때는 변수의 메모리 크기보다 작은 값인지 주의해야 합니다. 만약, 정수형 변수의 메모리 크기가 4Bytes라면, 값은 0 ~ 232 - 1 범위의 값을 다룰 수 있습니다.

댓글 없음:

댓글 쓰기