본문 바로가기

# Lang/C++

2.1 자료형


 자료형

데이터의 크기해석방법을 정의.


본래 데이터는 비트열의 형태로 저장되기 때문에,

해석방법을 정의하지 않으면 해석이 불가능하다.


[참고자료]  단순히 비트열만 보고 어떤 데이터인지 알 수 있을까?



자료형은 마치 파일의 확장자처럼,

데이터의 크기와 비트열의 해석방법을 알려준다.





 자료형의 구분

자료형은 특성에 따라 3가지로 구분할 수 있다.

  • 언어에서 기본적으로 지원하는 자료형.  (Built-in type, Pimitive type)
  • 프로그래머가 스스로 정의하는 자료형.  (User-Defined type)
  • 어떤 자료형에서 파생되는 자료형.  (Derived type)






 원시 자료형

프로그래밍 언어에서 기본적으로 지원하는 자료형.

단, 언어마다 원시 자료형이 다를 수 있다.



bool과 long의 크기에 주목하자.


bool은 true or false 밖에 저장하지 못하지만 1 Byte를 차지하고,

long은 환경에 따라 변한다.





 고정길이 정수 자료형

컴파일 환경에 영향을 받지 않는 정수 자료형.

정수 표준 자료형으로 채택됨.

int8_t는 char로 정의되어 있다.

char은 컴파일러마다 처리하는 방식이 다르므로,  int8_t는 권장되지 않는다.





 사용자 정의 자료형

프로그래머가 직접 정의한 자료형.

구조체, 클래스, 공용체, 열거형이 여기에 속한다.


  • 구조체,  클래스  (Struct,  Class)

여러개의 원시 자료형을 뭉쳐 만들어진 새로운 자료형.

멤버변수와 멤버함수의 데이터가 일렬로 이어진다.




  • 공용체 (Union)

여러개의 자료형이 하나의 메모리를 참조하는 자료형.

즉, 같은 메모리를 공유하지만, 해석방법이 여러개인 자료형.


자료형의 크기가 다른경우, 가장 큰 자료형만큼의 메모리를 할당한다.

공용체는 큰 데이터를 작은 단위로 나눠야 할 때 유용하다.





  • 열거형 (Enum)

이해하기 쉬운 이름을 갖는 정수들을 정의.


[사진출처]  네이버 블로그





 파생 자료형

어떤 타입 T에서 파생되는 자료형.

포인터, 참조형, 배열, 함수가 여기에 속한다.

  • 포인터  :  T 자료형을 갖는 데이터의 시작지점을 가르키는 자료형.

  • 참조형  :  T 데이터에 새로운 이름을 부여하는 자료형.

  • 배열  :  T 데이터를 모은 자료형.

  • 함수  :  T 데이터를 리턴하는 자료형.





'# Lang > C++' 카테고리의 다른 글

2.3 자료형과 형변환  (0) 2019.03.29
2.2 자료형과 데이터 해석  (0) 2019.03.27
1.3 변수와 메모리 모델  (0) 2019.03.23
1.2 변수의 생성  (0) 2019.03.21
1.1 변수의 정의  (0) 2019.03.20