Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 기본 데이터 타입과 파생 데이터 타입의 차이점 완벽 정리

프로그래밍에서 데이터 타입(data type)은 사용자가 사용하려는 데이터의 종류와 성격을 의미합니다. 컴파일러나 인터프리터는 이 데이터 타입을 기준으로 데이터를 처리하며, 메인 메모리에 그에 맞는 저장 공간을 할당하게 됩니다.

데이터의 성격에 따라 데이터 타입은 크게 두 가지로 나눌 수 있습니다. 하나는 기본 데이터 타입(Fundamental Data Type)이고, 다른 하나는 파생 데이터 타입(Derived Data Type)입니다. 두 데이터 타입 모두 프로그래밍에서 널리 사용되며, 데이터 위에 비즈니스 로직을 구현할 때 동등하게 중요한 역할을 합니다.

아래에서 기본 데이터 타입과 파생 데이터 타입의 주요 차이점을 항목별로 살펴보겠습니다.

기본 데이터 타입 vs 파생 데이터 타입

번호구분기본 데이터 타입파생 데이터 타입
1정의이름 그대로 언어 자체에서 제공하는 구체적인(concrete) 데이터 타입입니다. 고유한 특성과 속성을 가지며, 해당 데이터를 다루기 위한 기본적인 연산 메서드도 함께 제공됩니다.기본 데이터 타입들을 조합하여 만들어진 데이터 타입입니다. 즉, 기본 데이터 타입으로부터 파생되었으며, 기본 타입에는 없는 추가적이거나 수정된 속성을 가집니다.
2구현 방식언어마다 정해진 형태로 구체적으로 구현되어 있습니다. 예를 들어 C++에서는 문자(char), 정수(int), 실수(float), void가 대표적인 기본 데이터 타입입니다.사용자가 어떤 형태의 데이터를 다룰지 직접 정의하는 추상적인(abstract) 구현 방식을 따릅니다. 포인터(pointer), 배열(array), 구조체(structure), 공용체(union) 등이 대표적인 예입니다.
3데이터 처리문자 데이터 타입은 문자를 저장하는 데 사용되며, char, signed char, unsigned char로 분류할 수 있습니다.포인터는 변수의 값을 저장하는 대신 변수의 메모리 주소를 저장하는 데 사용됩니다.
4할당 및 저장정수 타입은 소수점이 없는 정수값을 저장하는 데 사용되며, signed와 unsigned로 나뉩니다. 더 세부적으로는 int, short int, long int로 분류됩니다.배열은 동일한 타입의 데이터를 담는 데 사용됩니다. 문자, 정수, 실수는 물론 사용자가 정의한 데이터 타입까지 포함할 수 있습니다.
5성능기본 데이터 타입은 데이터의 종류와 성격만 다루므로, 언어의 구체적인 구현을 기반으로 동작하기 때문에 시간 복잡도 문제가 발생하지 않습니다.반면 파생 데이터 타입은 저장된 데이터를 조작하고 로직을 실행하는 작업이 중심이 되므로 시간 복잡도가 중요한 고려 사항이 됩니다.

정리

기본 데이터 타입은 언어가 기본적으로 제공하는 빌딩 블록이라면, 파생 데이터 타입은 이러한 기본 타입을 조합해 개발자가 필요에 맞게 확장한 도구라고 할 수 있습니다. 두 타입의 특성과 차이를 정확히 이해하면, 상황에 맞는 효율적인 자료 구조 설계와 성능 최적화에 큰 도움이 됩니다.