size of 연산자

ruler

개념

size of 연산자: 이것은 피 연산자의 크기를 byte 단위로 계산하여 알려 준다.
피 연산자는 변수 , 상수 , 수식 , 데이터 타입 (자료형) 등이 올 수 있다.
따라서 size of 연산자는 메모리 동적 할당 , 자료의 크기 확인 등에서 유용하게 사용 될 수 있는 연산자이다.
size of 연산자를 사용할 경우에는 소 괄호를 꼭 사용하는 습관을 들이는 것이 좋다.
물론 필요 없는 경우와 그에 대한 이유도 있지만 굳이 구분하여 사용할 실익이 없다. 그냥 size of 연산자를 사용할 때는 소 괄호를 함께 씁시다.
이 연산자의 사용법은 아래와 같다.

  • 피 연산자가 자료형인 경우
    size of ( int )
  • 피 연산자가 상수인 경우
    size of ( 7 )
  • 피 연산자가 배열인 경우
    size of (배열 이름)

size of 연산자 사용에 대한 아래 예제를 봅시다.

예제

위 예제의 실행 결과는 아래와 같다.

int형 변수 v의 크기 : 4
double형 변수 k의 크기 : 8
정수형 상수의 크기 : 4
수식의 결과 값의 크기 : 8
char 자료형의 크기 : 1
int형 배열 x의 크기 : 12

위 실행 결과의 단위는 당연히 byte ( 8bit) 이다.

9행의 size of 연산 결과는 int 자료형의 크기를 보여 주고 있다. int 는 4 바이트 크기인데 굳이 연산을 한 이유는 자료형은 cpu 또는 compiler 마다 상이한 경우도 있기 때문이다. 따라서 int 자료형의 크기를 확인 하고 싶을 때 size of 연산자를 사용하면 된다.
13 행 , 15 행은 각각 상수 , 수식의 크기를 보여 주고 있다. 이처럼 size of 연산자는 변수 이외의 피 연산자들도 연산 대상이 된다.
13행의 상수가 7이므로 4bye 의 표현 범위 안에 있는 수이다. 그러나 그 표현 범위 밖의 수라면 8byte 가 될 수 도 있다.
15행의 수식 결과가 실수 이므로 크기는 8byte 가 나온다.
19행에서는 배열 길이 ( 배열 요소의 총 개수)가 3인 int 타입 배열의 크기를 알려주고 있다. 배열 요소 1개가 4 byte 이므로 총 3 x 4 byte = 12 byte 가 나온다.

size of 연산자 와 배열

  • 배열의 크기 구하기 : size of ( 배열 이름)
    int array [4] ; // 길이가 4인 int 타입 배열 array 를 선언 했다.
    size of (array) ; // 4 x 4 byte = 16 byte 가 나온다.
  • 배열 길이(배열 요소 개수) 구하기 : size of (배열 이름) / size of (배열 타입)
    int array [4] ; // 길이가 4인 int 타입 배열 array 를 선언 했다.
    size of (array) / size of (int) ; // 16 byte / 4 byte = 4 가 나온다.