• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [C++ 프로그래밍] 암시적 데이터 변환 (Implicit Data Conversions)
    2024년 07월 22일
    • 유니얼
    • 작성자
    • 2024.07.22.:15
    728x90

    C++ 기초 프로그래밍: 암시적 데이터 변환 (Implicit Data Conversions)

    C++ 프로그래밍에서는 서로 다른 데이터 타입이 연산될 때 자동으로 타입 변환이 일어날 수 있습니다. 이를 암시적 변환(implicit conversion)이라고 하며, 보통 작은 범위의 타입이 큰 범위의 타입으로 변환됩니다. 이번 블로그 글에서는 암시적 데이터 변환이 어떻게 이루어지는지와 그 사용 예제를 살펴보겠습니다.

    암시적 데이터 변환이란?

    암시적 데이터 변환은 C++ 컴파일러가 서로 다른 타입 간의 연산을 처리할 때 자동으로 타입 변환을 적용하는 것을 말합니다. 이는 프로그램의 유연성을 높이고, 다양한 타입 간의 연산을 쉽게 수행할 수 있게 합니다. 예를 들어, int와 double 타입이 함께 사용될 때, int는 double로 변환되어 연산이 수행됩니다.

    예제 코드

    다음 예제 코드는 암시적 데이터 변환이 어떻게 이루어지는지를 보여줍니다:

    #include <iostream>
    
    int main() {
        // 컴파일러는 표현식에서 타입이 다를 때 암시적 변환을 적용함.
        // 이 경우 int는 double로 변환된 후 표현식이 평가됨.
        double price {45.6};
        int units {10};
        
        auto total_price = price * units; // units가 암시적으로 double로 변환됨
        
        std::cout << "Total price : " << total_price << std::endl;
        std::cout << "sizeof total_price : " << sizeof(total_price) << std::endl;
    
        // 암시적 변환이 할당에서 발생함
        // 할당 연산은 암시적 축소 변환을 야기함, y는 할당 전에 int로 변환됨
        int x;
        double y {45.44};
        x = y; // double이 int로 변환됨
        std::cout << "The value of x is : " << x << std::endl; // 45
        std::cout << "sizeof x : " << sizeof(x) << std::endl; // 4
        
        return 0;
    }
    

    출력 결과

    위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

    Total price : 456
    sizeof total_price : 8
    The value of x is : 45
    sizeof x : 4
    

    예제 분석

    1, 암시적 변환이 연산에서 발생:

    • double price와 int units를 곱하는 연산에서 units는 자동으로 double 타입으로 변환됩니다. 따라서 total_price는 double 타입이 됩니다.
    • auto total_price = price * units;에서 units는 double로 변환되므로 total_price는 double 타입입니다.

    2, 암시적 변환이 할당에서 발생:

    • double y를 int x에 할당할 때, y의 값은 int 타입으로 변환됩니다. 이때 소수점 이하의 값은 버려집니다.
    • x = y;에서 y의 값 45.44는 int 타입으로 변환되어 45가 됩니다.

    결론

    C++에서는 암시적 데이터 변환을 통해 서로 다른 데이터 타입 간의 연산을 쉽게 수행할 수 있습니다. 암시적 변환은 작은 범위의 타입을 큰 범위의 타입으로 변환하거나, 반대로 큰 범위의 타입을 작은 범위의 타입으로 변환할 때 발생합니다. 이러한 변환은 코드의 유연성을 높이고, 다양한 데이터 타입을 효율적으로 처리할 수 있게 합니다. 그러나 암시적 변환이 언제 일어나는지, 그리고 그 결과가 무엇인지 이해하는 것은 중요합니다. 이를 통해 예기치 않은 결과를 방지하고, 코드의 정확성과 안정성을 유지할 수 있습니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바