size_t

김민수·2025년 1월 8일

C++

목록 보기
9/68

size_t는 부호 없는 정수형(unsigned integer)이며, 주로 데이터 크기(길이) 또는 메모리 용량을 나타내는 데 사용된다.
부호가 없기 때문에 음수 값이 없고, 항상 0 이상의 값만 표현할 수 있다.

int main() {
    size_t num = 10; // 부호 없는 정수 10
    std::cout << "num: " << num << std::endl;
    return 0;
}

1. size_t와 일반 정수형(int)의 차이

특징size_tint
부호 여부부호 없음 (unsigned)부호 있음 (signed)
표현 가능한 값0 이상의 정수음수와 양수 모두 표현 가능
크기시스템에 따라 다름일반적으로 4바이트(32비트)
용도메모리 크기, 데이터 길이일반적인 정수 계산
  • size_t음수를 표현할 필요가 없는 경우, 특히 데이터 길이메모리 크기를 다룰 때 사용한다.


2. 주의할 점: size_tint 비교 시 문제

size_t부호 없는 정수이기 때문에, 부호 있는 정수(int)와 비교할 때 주의해야 한다. 만약 음수를 size_t와 비교하면 예상치 못한 결과가 나올 수 있다.

예시: 부호가 있는 정수와 비교할 때 주의

#include <iostream>

int main() {
    size_t num = 5;
    int value = -3;

    if (value < num) {
        std::cout << "value가 num보다 작다" << std::endl;
    } else {
        std::cout << "value가 num보다 크다" << std::endl;
    }

    return 0;
}

출력 결과

value가 num보다 크다

이유

  • value가 음수인데도 불구하고 size_t와 비교할 때 양수로 변환되어 비교되기 때문에, 올바르지 않은 결과가 나온다.
  • 따라서 부호가 있는 정수와 부호 없는 정수(size_t)를 비교할 때는 주의해야 한다.
profile
안녕하세요

0개의 댓글