C 的型別轉換詳解

2022-09-21 21:54:14 字數 1361 閱讀 4575

目錄

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...