데이터 타입 (C++)

2025. 1. 4. 20:09프로그래밍 언어/C++

1. 기본 데이터 타입 (Fundamental Data Types)

정수형 (Integer Types)

정수를 저장

데이터 타입 크기 (바이트) 값의 범위 예시
short 2 -32,768 ~ 32,767 short a = 10;
int 4 -2,147,483,648 ~ 2,147,483,647 int b = 20;
long 4 또는 8 플랫폼에 따라 다름 long c = 1000;
long long 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 long long d = 100000LL;

부호 없는 정수형 (Unsigned Integer Types)

양수만 저장

데이터 타입 크기 (바이트) 값의 범위 예시
unsigned short 2 0 ~ 65,535 unsigned short a = 300;
unsigned int 4 0 ~ 4,294,967,295 unsigned int b = 500;
unsigned long 4 또는 8 플랫폼에 따라 다름 unsigned long c = 1000;
unsigned long long 8 0 ~ 18,446,744,073,709,551,615 unsigned long long d = 100000ULL;

실수형 (Floating-point Types)

소수점을 포함한 값

데이터 타입 크기 (바이트) 유효 자릿수 값의 범위 예시
float 4 약 6~7자리 ±3.4E-38 ~ ±3.4E+38 float a = 3.14f;
double 8 약 15자리 ±1.7E-308 ~ ±1.7E+308 double b = 3.14159;
long double 8 또는 16 약 19자리 플랫폼에 따라 다름 long double c = 3.1415926535;

문자형 (Character Type)

한 개의 문자를 저장

데이터 타입 크기 (바이트) 값의 범위 예시
char 1 -128 ~ 127 또는 0 ~ 255 char c = 'A';

부울형 (Boolean Type)

참(True) 또는 거짓(False)을 저장

데이터 타입 크기 (바이트) 값의 범위 예시
bool 1 true, false bool flag = true;

2. 파생 데이터 타입 (Derived Data Types)

1) 배열 (Array)

  • 동일한 데이터 타입의 값을 연속적으로 저장.
  • 예시:
int arr[5] = {1, 2, 3, 4, 5};

2) 포인터 (Pointer)

  • 변수의 주소를 저장.
  • 예시:
int a = 10;
int *ptr = &a;

3) 참조형 (Reference)

  • 기존 변수에 대한 별칭을 생성.
  • 예시:
int a = 10;
int &ref = a;

4) 함수 (Function)

  • 함수도 데이터 타입으로 간주되며 특정 반환 타입과 입력 매개변수 타입을 가짐.
  • 예시:
int add(int a, int b) {
    return a + b;
}

3. 사용자 정의 데이터 타입 (User-defined Data Types)

1) 열거형 (Enumeration)

  • 상수 값 집합을 정의.
  • 예시:
enum Color { RED, GREEN, BLUE };
Color myColor = RED;

2) 구조체 (Structure)

  • 서로 다른 데이터 타입의 변수 묶음. (C++에서 구조체는 class와 동일하며 기본 접근제한자가 public이라고 생각하면 될 것 같다.)
  • 예시:
struct Point {
    int x;
    int y;
};
Point p1 = {10, 20};

3) 클래스 (Class)

  • 데이터와 함수를 포함하는 사용자 정의 데이터 타입.
  • 예시:
class Car {
public:
    string brand;
    int speed;
};
Car myCar;
myCar.brand = "Toyota";
myCar.speed = 120;

4) 공용체 (Union)

  • 여러 변수 중 하나만 저장 공간을 공유.
  • 예시:
union Data {
    int i;
    float f;
};
Data data;
data.i = 10;

4. 자동형 데이터 타입 (Auto and decltype) - 추론 규칙은 별도로.

1) auto

  • 데이터 타입을 추론.
  • 예시:
auto x = 10;      // int
auto y = 3.14;    // double

2) decltype

  • 표현식의 타입을 추론.
  • 예시:
int a = 5;
decltype(a) b = 10;  // b는 int 타입