程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 走進C++程序世界-------強制數據類型轉換(static_cast、dynamic_cast、reinterpret_cast、const_cast)

走進C++程序世界-------強制數據類型轉換(static_cast、dynamic_cast、reinterpret_cast、const_cast)

編輯:C++入門知識

C++類型轉換:

C++類型轉換分為:隱式類型轉換和顯式類型轉換

隱式類型轉換:

又稱為“標准轉換”,包括以下幾種情況:
1) 算術轉換(Arithmetic conversion) : 在混合類型的算術表達式中, 最寬的數據類型成為目標轉換類型。

int ival = 3;
double dval = 3.14159;

ival + dval;//ival被提升為double類型
2)一種類型表達式賦值給另一種類型的對象:目標類型是被賦值對象的類型

int *pi = 0; // 0被轉化為int *類型
ival = dval; // double->int

例外:void指針賦值給其他指定類型指針時,不存在標准轉換,編譯出錯

3)將一個表達式作為實參傳遞給函數調用,此時形參和實參類型不一致:目標轉換類型為形參的類型

extern double sqrt(double);

cout << "The square root of 2 is " << sqrt(2) << endl;
//2被提升為double類型:2.0

4)從一個函數返回一個表達式,表達式類型與返回類型不一致:目標轉換類型為函數的返回類型

double difference(int ival1, int ival2)
{
    return ival1 - ival2;
    //返回值被提升為double類型
}

顯示類型轉換:


1、http://www.cnblogs.com/chio/archive/2007/07/18/822389.html



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved