C++ 基礎(chǔ)教程

C++ 流程控制

C++ 函數(shù)

C++ 數(shù)組 & 字符串

C++ 數(shù)據(jù)結(jié)構(gòu)

C++ 類 & 對象

C++ 指針

C++ 繼承

C++ STL 教程

C++ 參考手冊

C++ 類型轉(zhuǎn)換

在本教程中,我們將借助示例學習C ++類型轉(zhuǎn)換的基礎(chǔ)知識。

C ++允許我們將一種類型的數(shù)據(jù)轉(zhuǎn)換為另一種類型的數(shù)據(jù)。這稱為類型轉(zhuǎn)換。

C ++中有兩種類型的類型轉(zhuǎn)換。

  1. 隱式轉(zhuǎn)換

  2. 顯式轉(zhuǎn)換(也稱為強制類型轉(zhuǎn)換)

相關(guān)轉(zhuǎn)換:將 C ++字符串轉(zhuǎn)換為int  C ++ String轉(zhuǎn)換為float / double

隱式類型轉(zhuǎn)換

由編譯器自動完成的類型轉(zhuǎn)換稱為隱式類型轉(zhuǎn)換。這種類型的轉(zhuǎn)換也稱為自動轉(zhuǎn)換

讓我們看一下隱式類型轉(zhuǎn)換的兩個實例。

示例1:從int轉(zhuǎn)換為double

// 隱式類型轉(zhuǎn)換的工作方式

#include <iostream>
using namespace std;

int main() {
   // 為num_int分配一個int值
   int num_int = 9;

   // 聲明一個double變量
   double num_double;
 
   // 隱式轉(zhuǎn)換
   // 將int值分配給double變量
   num_double = num_int;

   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;

   return 0;
}

輸出結(jié)果

num_int = 9
num_double = 9

在程序中,我們已將int數(shù)據(jù)分配給double變量。

num_double = num_int;

此處,在將int值分配給num_double變量之前,它會由編譯器自動轉(zhuǎn)換為double。 這是隱式類型轉(zhuǎn)換的示例。

示例2:自動從double轉(zhuǎn)換為int

//隱式類型轉(zhuǎn)換的工作方式

#include <iostream>
using namespace std;

int main() {

   int num_int;
   double num_double = 9.99;

   // 隱式轉(zhuǎn)換
   // 將一個double值賦給一個int變量
   num_int = num_double;

   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;

   return 0;
}

輸出結(jié)果

num_int = 9
num_double = 9.99

在程序中,我們已將double數(shù)據(jù)分配給int變量。

num_double = num_int;

在此,將double值分配給num_int變量之前,編譯器會自動將其轉(zhuǎn)換為int。 這也是隱式類型轉(zhuǎn)換的示例。

注意:由于int不能有小數(shù)部分,因此在上面的示例中,小數(shù)點后的數(shù)字被截斷了。

轉(zhuǎn)換期間的數(shù)據(jù)丟失(窄化轉(zhuǎn)換)

從上面的示例可以看出,從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型很容易導致數(shù)據(jù)丟失。當較大類型的數(shù)據(jù)轉(zhuǎn)換為較小類型的數(shù)據(jù)時,會發(fā)生這種情況。

如果將較大類型的數(shù)據(jù)轉(zhuǎn)換為較小類型,則C ++中的數(shù)據(jù)丟失。
類型轉(zhuǎn)換期間,可能會發(fā)生數(shù)據(jù)丟失

C ++顯式轉(zhuǎn)換

當用戶手動將數(shù)據(jù)從一種類型更改為另一種類型時,這稱為顯式轉(zhuǎn)換。這種類型的轉(zhuǎn)換也稱為強制類型轉(zhuǎn)換。

我們可以使用三種主要方法在C ++中使用顯式轉(zhuǎn)換。他們是:

  1. C型類型強制轉(zhuǎn)換(也稱為強制轉(zhuǎn)換符號)

  2. 函數(shù)表示法(也稱為老式c++風格的類型轉(zhuǎn)換)

  3. 類型轉(zhuǎn)換運算符

C 風格轉(zhuǎn)換

顧名思義,這種類型的轉(zhuǎn)換受到C編程語言的青睞。也稱為強制轉(zhuǎn)換表示法。

這種樣式的語法是:

(data_type)expression;

例如,

// 初始化int變量
int num_int = 26;

// 聲明double變量
double num_double;

// 從int轉(zhuǎn)換為double
num_double = (double)num_int;

函數(shù)樣式轉(zhuǎn)換

我們還可以使用類似符號的函數(shù)將數(shù)據(jù)從一種類型轉(zhuǎn)換為另一種類型。

這種類型的語法是:

data_type(expression);

例如,

// 初始化int變量
int num_int = 26;

// 聲明double變量
double num_double;

// 從int轉(zhuǎn)換為double
num_double = double(num_int);

示例3:類型轉(zhuǎn)換

#include <iostream>

using namespace std;

int main() {
    // 初始化double變量
    double num_double = 3.56;
    cout << "num_double = " << num_double << endl;

    // 從double到int的C風格轉(zhuǎn)換
    int num_int1 = (int)num_double;
    cout << "num_int1   = " << num_int1 << endl;

    // 從double到int的函數(shù)樣式轉(zhuǎn)換
    int num_int2 = int(num_double);
    cout << "num_int2   = " << num_int2 << endl;

    return 0;
}

輸出結(jié)果

num_double = 3.56
num_int1   = 3
num_int2   = 3

我們使用C風格類型轉(zhuǎn)換函數(shù)樣式轉(zhuǎn)換進行類型轉(zhuǎn)換,并顯示結(jié)果。由于它們執(zhí)行相同的任務(wù),因此兩者都給我們相同的輸出。

類型轉(zhuǎn)換運算符

除了這兩個類型轉(zhuǎn)換外,C ++還具有四個用于類型轉(zhuǎn)換的運算符。它們被稱為類型轉(zhuǎn)換運算符。他們是:

  • static_cast

  • dynamic_cast

  • const_cast

  • reinterpret_cast

我們將在以后的教程中了解這些強制轉(zhuǎn)換。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清