C#에는 하나의 피연산자만으로 동작하는 단항 연산자(unary operator)가 여러 종류 제공됩니다. C#에서 사용할 수 있는 단항 연산자는 다음과 같습니다.
+ - ! ~ ++ -- (type)* & sizeof
주요 단항 연산자의 의미
- + : 단항 플러스, 값의 부호를 그대로 유지합니다.
- - : 단항 마이너스, 값의 부호를 반전시킵니다.
- ! : 논리 부정(NOT), true와 false를 뒤바꿉니다.
- ~ : 비트 NOT(1의 보수), 각 비트를 반전시킵니다.
- ++ : 증가 연산자, 값을 1 증가시킵니다.
- -- : 감소 연산자, 값을 1 감소시킵니다.
- (type) : 명시적 형변환(cast)을 수행합니다.
- *, & : 포인터 역참조 및 주소 연산자로, unsafe 컨텍스트에서 사용됩니다.
- sizeof : 자료형이 차지하는 메모리 크기를 바이트 단위로 반환합니다.
sizeof 연산자란?
이번 글에서는 그중 sizeof 연산자를 자세히 살펴보겠습니다. sizeof는 지정된 데이터 타입이 메모리에서 차지하는 크기를 바이트 단위로 반환하는 연산자입니다.
예를 들어 int 자료형의 크기를 구하려면 다음과 같이 작성합니다.
sizeof(int)
double 자료형의 경우는 다음과 같습니다.
sizeof(double)
다양한 자료형의 크기 확인 예제
아래는 여러 기본 자료형의 크기를 한 번에 출력하는 전체 예제 코드입니다.
예제 코드
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
Console.WriteLine("int의 크기: {0}", sizeof(int));
Console.WriteLine("char의 크기: {0}", sizeof(char));
Console.WriteLine("short의 크기: {0}", sizeof(short));
Console.WriteLine("long의 크기: {0}", sizeof(long));
Console.WriteLine("double의 크기: {0}", sizeof(double));
Console.ReadLine();
}
}
}실행 결과
int의 크기: 4 char의 크기: 2 short의 크기: 2 long의 크기: 8 double의 크기: 8
실행 결과에서 볼 수 있듯이 int는 4바이트, char와 short는 2바이트, long과 double은 8바이트를 차지합니다. 이처럼 sizeof 연산자를 활용하면 각 자료형의 메모리 사용량을 손쉽게 확인할 수 있어, 메모리 최적화나 저수준 프로그래밍 시 매우 유용합니다.