다루두루

블로그 이미지

차케요

공부하면서 정리하는 노트같은 블로그입니다.

C언어 연산자 sizeof

C언어 알고리즘 2015. 7. 7. 17:08

C언어 연산자 sizeof


■ 이번 글에서는 C언어 자료형에 대해서 개념을 정리하고 그 크기를 바이트(byte) 단위로 계산해서 반환하는 sizeof 연산자를 사용해서 크기를 확인해보는 과정을 정리해본다.먼저 c언어의 자료형이란 데이터를 표현하는 기준이다. 어떤 데이터를 저장할 때는 메모리상에 공간을 만들기 위해서 변수를 선언해야 하는데 정수를 저장할지 실수를 저장할지 결정해야 한다. 왜냐하면 컴퓨터는 정수와 실수를 저장하는 방법이 다르다. 때문에 데이터를 변수에 저장하기 위해서는 가장 먼저 정수인지 실수인지를 결정해야 한다. 


■ 정수를 저장하기로 결정했다고 한다면 메모리의 크기는 어느 정도를 할당받아야 할까? 그리고 변수의 이름은 무엇으로 해야 할까? 등을 결정해야 하는데.... 메모리의 크기가 4byte 이면 충분히 데이터를 저장할 수 있고, 변수의 이름을 'x'라고 정할 때 다음과 같이 표현할 수 있다. 


int x;


■ 정말 간단하다. x가 변수 이름이라는 것은 누구나 알 수 있을 것이다. 그럼 int는 무엇일까? int는 정수형 자료형 중의 하나로써 가장 많이 사용된다. int는 4byte의 크기를 저장할 수 있는 공간인데 .... 이렇게 저장할 수 있는 크기는 각 자료형마다 다르다. 

 


 그럼 c언어의 자료형의 크기를 정리해본다.(소괄호 안의 숫자가 byte의 크기이다.)

정수형은 char(1), short(2), int(4), long(4), long long(8) 의 크기이며, 실수형은 float(4), double(8), long double(8) 의 크기이다. byte의 크기가 클수록 더 많은 범위를 저장할 수 있는 건 당연하다. 그렇다면 왜 이렇게 구분하고 있을까? 첫 번째 이유는 컴퓨터가 정수와 실수를 저장하는 방식이 다르기 때문에 최소한 정수와 실수를 저장할 두 개 이상이 필요하며, 메모리의 공간을 효율적으로 사용하기 위해서이다. (10을 담기 위해서 100000의 공간을 활용하는 건 엄청난 낭비일 것이다.)


 이제 sizeof() 연산자를 이용해서 내가 사용 중인 컴파일러에서 자료형의 byte를 구하는 예제를 만들어보자.

▲ 각 자료형별로 변수를 선언하고 적당한 값들로 초기화하고 있다. 이 예제에서 변수에 저장된 값은 크게 의미가 없기 때문에 임의대로 초기화했으며, sizeof() 연사자를 이용해서 byte 크기를 구하고 있는 형태이다. 프로그램을 실행해서 결과값을 확인해보자.


▲ 앞에서 정리한 대로 각 자료형의 byte 크기가 구해진다. 마지막으로 하나만 더 정리하자면 sizeof()는 소괄호()가 있어서 함수로 착각할 수 있는데 연산자라는 점을 반드시 기억하자.


저작자표시 비영리 변경금지 (새창열림)
Posted by 차케요

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

카테고리

NEW (900)
아이폰 개발 기초 (7)
취미 (16)
아두이노 (16)
[안드로이드] 어플만들기 (77)
안드로이드 기초 다지기 (61)
슈팅게임 만들기 (4)
[JAVA]자바 공부하기 (48)
C언어 알고리즘 (61)
[Unity3D]유니티3D 강좌 (7)
컴퓨터 (325)
포토샵CS2 강좌 (6)
유용한 프로그램 (244)
리눅스 노트정리 (22)
임베디드 리눅스 (11)
New블로그 (9)
음식의 효능 (4)
일반상식 (56)
HTML 공부 (40)
포토샵 공부 (36)
엑셀 (6)
파워포인트 공부 (19)
노트정리 (38)
일상 (33)
TV영화 (85)
방명록 : 관리자 : 글쓰기
차케요's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

다루두루

공부하면서 정리하는 노트같은 블로그입니다.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • NEW (900)
    • 아이폰 개발 기초 (7)
    • 취미 (16)
      • 아두이노 (16)
    • [안드로이드] 어플만들기 (77)
      • 안드로이드 기초 다지기 (61)
      • 슈팅게임 만들기 (4)
    • [JAVA]자바 공부하기 (48)
    • C언어 알고리즘 (61)
    • [Unity3D]유니티3D 강좌 (7)
    • 컴퓨터 (325)
      • 포토샵CS2 강좌 (6)
      • 유용한 프로그램 (244)
    • 리눅스 노트정리 (22)
      • 임베디드 리눅스 (11)
    • New블로그 (9)
    • 음식의 효능 (4)
    • 일반상식 (56)
    • HTML 공부 (40)
    • 포토샵 공부 (36)
    • 엑셀 (6)
    • 파워포인트 공부 (19)
    • 노트정리 (38)
    • 일상 (33)
    • TV영화 (85)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바