English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ 타입 변환

이 튜토리얼에서 우리는 예제를 통해 C를 배우겠습니다 ++타입 변환의 기본 지식

C ++하나의 타입의 데이터를 다른 타입의 데이터로 변환할 수 있게 합니다. 이를 타입 변환이라고 합니다.

C ++중에는 두 가지 타입의 타입 변환이 있습니다.

  1. 명시적 변환

  2. 명시적 변환( 강제 타입 변환이라고도 합니다)

관련 변환: C ++문자열을 int로 변환  C ++ String을 float로 변환 / double

명시적 타입 변환

컴파일러가 자동으로 완료하는 타입 변환을 명시적 타입 변환이라고 합니다. 이 유형의 변환은 또한자동 변환

명시적 타입 변환의 두 가지 예를 보겠습니다.

예제1:int에서 double로 변환

// 명시적 타입 변환의 작동 방식
#include <iostream>
using namespace std;
int main() {
   // num_int에 int 값을 할당합니다
   int num_int = 9;
   // double 변수를 선언합니다
   double num_double;
 
   // 명시적 변환
   // int 값이 double 변수에 할당됩니다
   num_double = num_int;
   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;
   return 0;
}

출력 결과

num_int = 9
num_double = 9

프로그램에서 우리는 int 데이터를 double 변수에 할당했습니다.

num_double = num_int;

이곳에서 num_double 변수에 int 값이 할당되기 전에, 컴파일러가 자동으로 double로 변환됩니다. 이는 명시적 타입 변환의 예입니다.

예제2:자동 double에서 int로 변환

//명시적 타입 변환의 작동 방식
#include <iostream>
using namespace std;
int main() {
   int num_int;
   double num_double = 9.99;
   // 명시적 변환
   // double 값 하나를 int 변수에 할당합니다
   num_int = num_double;
   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;
   return 0;
}

출력 결과

num_int = 9
num_double = 9.99

프로그램에서 우리는 double 데이터를 int 변수에 할당했습니다.

num_double = num_int;

여기서는 num_int 변수에 double 값이 할당되기 전에 컴파일러가 자동으로 int로 변환합니다. 이것도 은답 변환의 예입니다.

주의하세요:int는 소수 부분을 가질 수 없기 때문에, 위의 예제에서 소수점 이후의 숫자는 잘리게 됩니다.

변환 중 데이터 손실(확장 변환)

위의 예제에서 볼 수 있듯이, 데이터 타입을 하나에서 다른 하나로 변환하는 것은 데이터 손실을 쉽게 유발할 수 있습니다. 더 큰 타입의 데이터가 더 작은 타입의 데이터로 변환될 때 이런 일이 발생합니다.

타입 변환 중 데이터 손실이 발생할 수 있습니다

C ++명시적 변환

사용자가 데이터를 하나의 타입에서 다른 타입으로 수동으로 변경할 때, 이를명시적 변환로도 알려집니다.강제 타입 변환

C에서는 세 가지 주요 방법을 사용하여 타입 변환을 할 수 있습니다. ++에서 명시적 변환을 사용합니다. 그들은 다음과 같습니다:

  1. C 타입 강제 변환(도 강제 변환 기호)

  2. 함수 표기법(도 구식 C++스타일의 타입 변환)

  3. 타입 변환 연산자

C 스타일 변환

그 이름 그대로, 이러한 변환은C 프로그래밍 언어의선호됩니다. 또는강제 변환 표기법

이러한 문법은 다음과 같습니다:

(data_type)expression;

예를 들어서:

// int 변수 초기화
int num_int = 26;
// double 변수 선언
double num_double;
// int에서 double로 변환
num_double = (double)num_int;

함수 스타일 변환

데이터를 하나의 타입에서 다른 타입으로 변환할 수 있는 유사한 기호 함수를 사용할 수 있습니다.

이러한 문법은 다음과 같습니다:

data_type(expression);

예를 들어서:

// int 변수 초기화
int num_int = 26;
// double 변수 선언
double num_double;
// int에서 double로 변환
num_double = double(num_int);

예제3:타입 변환

#include <iostream>
using namespace std;
int main() {
    // double 변수 초기화
    double num_double = 3.56;
    cout << "num_double = " << num_double << endl;
    // double에서 int로의 C 스타일 변환
    int num_int1 = (int)num_double;
    cout << "num_int1   = " << num_int1 << endl;
    // double에서 int로의 함수 스타일 변환
    int num_int2 = int(num_double);
    cout << "num_int2   = " << num_int2 << endl;
    return 0;
}

출력 결과

num_double = 3.56
num_int1   = 3
num_int2   = 3

사용합니다C 스타일 타입 변환함수 스타일 변환을 통해 타입 변환을 수행합니다,결과를 표시합니다. 같은 작업을 수행하기 때문에 두 가지 모두 동일한 출력을 제공합니다.

타입 변환 연산자

이 두 가지 타입 변환 외에도 C ++타입 변환을 위해 네 가지 연산자가 있습니다. 이들은 다음과 같습니다:타입 변환 연산자이들은 다음과 같습니다:

  • static_cast

  • dynamic_cast

  • const_cast

  • reinterpret_cast

이 강의에서는 이强制转换을 이해할 것입니다.