目錄
1.語法格式
static_cast目標型別》 (識別符號)
2.轉化規則
在乙個方向上可以作隱式轉換,在另外乙個方向上就可以作靜態轉換。
int a = 10;
int b = 3;
cout&lwww.cppcns.comt;(a)/b
int *p; void *q;
p = static_cast(q);
char *p = static_cast(malloc(100));
1.語法格式
reinterpret_cast目標型別》 (識別符號)
2.轉化規則
將資料以二進位制存在形式的重新解釋,在雙方向上都不可以隱式型別轉換的,則需要重解釋型別轉換
#include
#include
using namespace std;
int main()
; int *q = reinterpret_cast(a+1);
printf("%x\n",*q);
return 0;
}1.語法格式
const_cast目標型別》 (識別符號) //目標類型別只能是指標或引用。
2.語法規則
用來移除物件的常量性使用 const_cast 去除 const 限定的,目的不是為了修改它的內容,使用 const_cast 去除 const 限定,通常是為了函式能夠接受這個實際引數。
#include
using namespshdhhnmace std;
void func(int & ref) //別人己經寫好的程式或類庫
脫掉const後的程式設計客棧引用或指標可以改嗎
#include
using namespace std;
int main()
{ const int x = 200;
int & a =const_cast(x); // int &a = x;
a = 300;
cout
*p = 400;
cout
a1.data = 222;
cout
p1->data = 333;
cout
結論:可以改變 const 自定義類的成員變數,但是對於內建資料型別,卻表現未定義行為
3.const 常變數(補充)
c++中 const 定義的變數稱為常變數。變數的形式,常量的作用,用作常量,常用於取代#define 巨集常量
1.語法格式
dynamic_cast目標型別》 (識別符號)
用於多型中的父子類之間的強制轉化
本文標題: c++ 的型別轉換詳解
本文位址:
c 型別轉換詳解
c 型別轉換分為隱式型別轉換和顯式型別轉換 又稱為 標準轉換 包括以下幾種情況 1,算術轉換 arithmetic conversion 在混合型別的算術表示式中,最寬的資料型別成為目標轉換型別。int ival 3 double dval 3.14159 ival dval ival被提公升為do...
C 型別轉換詳解
目錄 c 對於內建型別有隱式或顯式的型別轉化,如int,double,long,char,但是,c 還有類這個概念,類是一種自定義型別,為了讓類 自定義型別 達到內建型別的層次,c 對類也挺提供一些方法進行自動或者強制型別轉換 c 的好多任務作,在我看來就是讓自定義型別能和內建型別一樣簡單使用 操作...
詳解C語言的型別轉換
詳解c語言的型別轉換 分類 c c 2013 06 17 21 37 113人閱讀 舉報目錄 自動型別轉換 賦值中的型別轉換 強制型別轉換 詳解c語言的型別轉換 1.自動型別轉換 字元型變數的值實質上是乙個8位的整數值,因此取值範圍一般是 128 127,char型變數也可以加修飾符unsigned...