-
[C++ 프로그래밍] 타입 승격과 sizeof 연산자2024년 07월 07일
- 유니얼
-
작성자
-
2024.07.07.:11
728x90C++ 기초 프로그래밍: 타입 승격과 sizeof 연산자
C++ 프로그래밍에서 타입 승격(type promotion)은 작은 범위의 자료형이 더 큰 범위의 자료형으로 변환되는 과정을 의미합니다. 이는 주로 산술 연산에서 발생하며, 데이터 손실을 방지하기 위한 메커니즘입니다. 이번 블로그 글에서는 타입 승격과 sizeof 연산자에 대해 알아보고, 이를 활용하는 방법을 예제와 함께 살펴보겠습니다.
타입 승격
타입 승격은 작은 범위의 자료형(예: char, short)이 더 큰 범위의 자료형(예: int)으로 자동 변환되는 과정을 의미합니다. 이는 산술 연산 중 데이터 손실을 방지하기 위한 메커니즘으로, 주로 다음과 같은 경우에 발생합니다:
- 작은 범위의 정수형 변수끼리의 산술 연산
- 작은 범위의 정수형 변수와 큰 범위의 정수형 변수 사이의 산술 연산
sizeof 연산자
sizeof 연산자는 변수나 자료형의 크기를 바이트 단위로 반환합니다. 이는 메모리 관리 및 최적화에 유용하게 사용됩니다.
예제 코드
다음 예제 코드는 타입 승격과 sizeof 연산자를 사용하여 변수와 산술 연산 결과의 크기를 출력하는 방법을 보여줍니다:
#include <iostream> int main() { // 변수 선언 및 초기화 short int var1 {10}; // 2 bytes short int var2 {20}; char var3 {40}; // 1 byte char var4 {50}; // 각 변수의 크기 출력 std::cout << "size of var1 : " << sizeof(var1) << std::endl; // short int의 크기 출력 std::cout << "size of var2 : " << sizeof(var2) << std::endl; std::cout << "size of var3 : " << sizeof(var3) << std::endl; // char의 크기 출력 std::cout << "size of var4 : " << sizeof(var4) << std::endl; // 두 변수의 합을 auto로 결과 저장 auto result1 = var1 + var2; // short int의 덧셈 결과는 int로 승격 auto result2 = var3 + var4; // char의 덧셈 결과는 int로 승격 // 결과 변수의 크기 출력 std::cout << "size of result1 : " << sizeof(result1) << std::endl; // int의 크기 출력 std::cout << "size of result2 : " << sizeof(result2) << std::endl; // int의 크기 출력 return 0; }
출력 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
size of var1 : 2 size of var2 : 2 size of var3 : 1 size of var4 : 1 size of result1 : 4 size of result2 : 4
예제 분석
변수 선언 및 초기화:
- short int 변수 var1과 var2는 각각 2 바이트 크기를 가집니다.
- char 변수 var3과 var4는 각각 1 바이트 크기를 가집니다.
sizeof 연산자를 사용한 변수 크기 출력:
- sizeof(var1)과 sizeof(var2)는 2 바이트를 출력합니다.
- sizeof(var3)과 sizeof(var4)는 1 바이트를 출력합니다.
타입 승격:
- var1 + var2와 var3 + var4의 결과는 각각 int로 승격됩니다. 이는 데이터 손실을 방지하기 위한 메커니즘입니다.
- sizeof(result1)과 sizeof(result2)는 4 바이트를 출력합니다. 이는 int 타입의 크기입니다.
결론
타입 승격과 sizeof 연산자는 C++ 프로그래밍에서 중요한 개념입니다. 타입 승격은 산술 연산 중 데이터 손실을 방지하기 위해 작은 범위의 자료형을 더 큰 범위의 자료형으로 자동 변환합니다. sizeof 연산자는 변수나 자료형의 크기를 바이트 단위로 반환하여 메모리 관리 및 최적화에 유용하게 사용됩니다.
반응형다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드
받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이
감지되어도 모달 창이 표시되지 않습니다.)