size_t는 부호 없는 정수형(unsigned integer)이며, 주로 데이터 크기(길이) 또는 메모리 용량을 나타내는 데 사용된다.
부호가 없기 때문에 음수 값이 없고, 항상 0 이상의 값만 표현할 수 있다.
int main() {
size_t num = 10; // 부호 없는 정수 10
std::cout << "num: " << num << std::endl;
return 0;
}
| 특징 | size_t | int |
|---|---|---|
| 부호 여부 | 부호 없음 (unsigned) | 부호 있음 (signed) |
| 표현 가능한 값 | 0 이상의 정수 | 음수와 양수 모두 표현 가능 |
| 크기 | 시스템에 따라 다름 | 일반적으로 4바이트(32비트) |
| 용도 | 메모리 크기, 데이터 길이 | 일반적인 정수 계산 |
size_t는 음수를 표현할 필요가 없는 경우, 특히 데이터 길이나 메모리 크기를 다룰 때 사용한다.size_t와 int 비교 시 문제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)를 비교할 때는 주의해야 한다.