用來進行數值型別間的轉化,比如int到float,也可以是自定義的某些資料型別的轉化。也可以用於類指標之間的轉化,但是這個運算子在父類到子類的轉化中沒有做檢查並不安全。static_cast轉換不像dynamic_cast轉換那樣安全,因為static_cast沒有執行時型別檢查,而dynamic_cast有。對模糊指標的dynamic_cast將失敗,而static_cast則返回,就好像沒有錯誤一樣;這可能很危險。
這個操作符專門用於指標或者引用操作,也可以進行point -> void 的操作。對父類和子類之間的指標裝換這個操作具有型別檢查的功能,比較安全!這裡要注意的是,如果父類和子類之間沒有虛函式(文件稱為多型類),那麼dynamic_cast不能執行轉換,應採用static_cast來進行轉換。
在低階程式設計以及硬體介面的開發過程中,常常需要將乙個特定的物理記憶體位址賦值給乙個指標。為此必須使用reinterpret_cast操作符計算位址值。例子如下:
void p;
// 將位址 0x5800ff 付給指標 p
p = reinterpret_cast< void > (0x5800ff);
const_cast轉換符是用來移除變數的const或volatile限定符。後者涉及到了多執行緒的設計。
const int constant = 21;
const int* const_p = &constant;
int* modifier = const_cast(const_p);
*modifier = 7;
(注:本文章借鑑了(和(的內容,不用於商業用途,侵刪)
C 初學者的日常記錄
c 初學者的記錄 2 1 string和string.h的區別 標準的c 標頭檔案沒有.h的副檔名,帶.h的是c的標頭檔案,將c的標頭檔案改為c 的標頭檔案,有時會加上c的字首表示 於c語言,例如cmath就是mach.h變化而來。參考於 和 2 c 如何判斷檔案開啟成功 if 檔案流物件 在c 中...
給C 的初學者的建議
如果你不確定你將來從事何種行業的軟體開發,只是想學習一門程式語言,那麼從c 起步是個很好的選擇。要執著,不要今天學點c 明天學點vb,最後是學了十幾種語言,都是只懂皮毛。學習c 不需要c語言基礎,沒有任何程式語言的基礎的人學得會更快。首先選擇一本教材,如果你的耐心不夠好,就選擇薄一點的,如清華大學錢...
資料庫初學者 面向初學者的免費6小時資料科學課程
資料庫初學者 data science is considered the iest job of the 21st century.learn data science in this full 6 hour course for absolute beginners from barton po...