C 中指標(或引用)型別間轉換

2021-09-24 21:43:31 字數 1124 閱讀 5105

1,const_cast()操作符;

//目標型別只能是指標or引用

#include using namespace std;

int main()

2 static_cast()操作符;

#include using namespace std;

class parent

void show()

};class child : public parent

void print()

};int main()

3 dynmic_cast操作符;

//dynmic_cast操作符會在執行期間對可疑的轉換型別操作進行安全檢查,而static_cast不會進行安全檢查

#include using namespace std;

class parent

};class child : public parent

};int main()

4 reinterpret_cast操作符;

#include using namespace std;

int main()

總結:

(1)const_cast()操作符;

1,取消const屬性。

2,可以用常量初始化常引用,但不能用常量初始化普通引用。

(2)static_cast()操作符;

1,可用於基本型別間轉換,例如 int = float,但不能用於基本型別指標間轉換。

2,可用於有繼承關係的類之間物件間(父類物件和子類物件)的轉換 和 指標之間(父類指標和子類指標)的轉換。

(3)dynmic_cast()操作符;

用於有繼承關係的基類與派生類指標之間的轉換,前提是必須有多型存在。

1,向上轉型 基類指標物件 = 派生類指標物件 ;

2,向下轉型 派生類指標物件 = 基類指標物件;

(4)reinterpret_cast()操作符;

1,可用於普通型別之間的轉換(但不安全);

2,可用於整數和指標之間的轉換。

C 中 指標和引用

相信很多c 初學者都搞不清指標和引用是個什麼玩意,這裡我也不寫其定義。主要解釋 和 的作用。相信看完以後一定會有收穫的。首先,看起幾個常見的例子 int i 520 int r i int p p i p i int r2 p以上是一些c 中常見的寫法.其中 和 既能作為表示式的運算子,也能作為申明...

C 指標型別間強制轉換

深入理解指標型別間的轉換 c 中指標的強制轉換 強制型別轉換 int int 和 int 的區別 記憶體中的位址 位址的本質就是一串0和1的機器 記憶體中的位址沒有明確資料型別,但位址值有型別,以32位編譯器為例,記憶體中的位址是乙個32位的整數。無論什麼型別的指標變數,在記憶體中本質上都是一樣的,...

C 中指標與引用區別

1.都是位址的概念 指標指向一塊記憶體,它的值為該塊記憶體的位址。引用是某塊記憶體的別名。1.指標是實體,引用只是乙個別名。2.使用時,引用需要解引用,指標不需要。解引用指獲得該記憶體位址處儲存的值 3.引用從一而終,指標可多變。給引用賦值修改的是該引用所關聯的物件的值,而並不是使引用與另乙個物件關...