最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ xxx_cast實現(xiàn)轉(zhuǎn)換代碼實例解析

 更新時間:2020年07月24日 09:45:02   作者:Cucucu  
這篇文章主要介紹了C++xxx_cast轉(zhuǎn)換代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1.1 static_cast

  static_cast可以在一個方向上實現(xiàn)隱式轉(zhuǎn)換,在另一個方向上實現(xiàn)靜態(tài)轉(zhuǎn)換。其適用于單隱和雙隱兩種情況。

雙隱

    雙隱即兩邊都可以直接進行隱式轉(zhuǎn)換,適用于一般類型的數(shù)據(jù)轉(zhuǎn)換(如int, float, double, long等數(shù)據(jù)類型之間的轉(zhuǎn)換)

單隱

    單隱即只能在一個方向上進行隱式轉(zhuǎn)換,在另一個方向上只能實現(xiàn)靜態(tài)轉(zhuǎn)換。(如void* 和指針之間的轉(zhuǎn)換,任意類型的指針可以轉(zhuǎn)換為void*,但是void*不能轉(zhuǎn)換為任意類型的指針,因此將void*轉(zhuǎn)換為任意類型的指針時就需要調(diào)用靜態(tài)轉(zhuǎn)換)

//首先要驗證的是static_cast,其可以實現(xiàn)在一個方向上做隱式轉(zhuǎn)換,另一個方向上做靜態(tài)轉(zhuǎn)換,可以適用于單隱和雙隱兩種情況

  //首先是雙隱,也就是兩邊都能直接進行隱式轉(zhuǎn)換,一般適用于基本數(shù)據(jù)類型,如
  int a = 4;
  double b = 3.2;
  a = b;
  b = a;
  cout << a << endl;
  cout << b << endl;
  a = static_cast<int> (b);
  b = static_cast<double> (a);

  //然后是單隱,也就是說,只能從一遍到另一邊進行隱式轉(zhuǎn)換
  //任意類型的指針可以轉(zhuǎn)換為void*,但是void*不能轉(zhuǎn)換為任意類型的指針
  void* p = &b;
  int* q = &a;
  p = q;
  q = static_cast<int*>(p);

1.2 reinterpret_cast

  reinterpret_cast“通常為操作數(shù)的位模式提供較底層的重新解釋”-->也就是說將數(shù)據(jù)以二進制的形式重新解釋,在雙方向上都不可以隱式類型轉(zhuǎn)換的,則需要重新類型轉(zhuǎn)換??梢詫崿F(xiàn)雙不隱的情況,如int轉(zhuǎn)指針,指針轉(zhuǎn)int等。

//雙不隱
  int *m=&a;
  int n=4;
  m = reinterpret_cast<int*>(n);
  n = reinterpret_cast<int>(m);

1.3 const_cast

  Const_cast可用來移除非const對象的引用或指針的常量性。其可以將const變量轉(zhuǎn)換為非const變量。其可以用于去除指針和引用的const,const_cast是對const的語義補充。其目標類型只能是引用或指針。

  非const對象 --> const引用或指針 --> 脫const --> 修改非const對象

//const_cast-->用于去除非const對象的const,用于指針和引用
  /************ 第一種情況,去引用的const化 ************/
  int aa;
  const int& ra = aa;
  aa = 100;
  cout << aa << endl;
  cout << ra << endl;
  //ra = 200;//這樣是錯誤的,因為ra是const,要實現(xiàn)ra的修改,必須去const化
  const_cast<int&> (ra) = 300;
  cout << aa << endl;
  cout << ra << endl;

  /************ 第二種情況,去指針的const化 ************/
  const int* pp = &a;
  //*p = 200;//這樣是錯誤的,因為指針p是const類型,要實現(xiàn)p的修改,必須去const化
  *const_cast<int*>(pp) = 500;
  cout << *pp << endl;

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C++命名空間?缺省參數(shù)?const總結(jié)?引用總結(jié)?內(nèi)聯(lián)函數(shù)?auto關鍵字詳解

    C++命名空間?缺省參數(shù)?const總結(jié)?引用總結(jié)?內(nèi)聯(lián)函數(shù)?auto關鍵字詳解

    這篇文章主要介紹了C++命名空間?缺省參數(shù)?const總結(jié)?引用總結(jié)?內(nèi)聯(lián)函數(shù)?auto關鍵字詳解的相關資料,需要的朋友可以參考下
    2023-01-01
  • C語言詳細分析貪心策略中最小生成樹的Prime算法設計與實現(xiàn)

    C語言詳細分析貪心策略中最小生成樹的Prime算法設計與實現(xiàn)

    最小生成樹的問題還是比較熱門的,最經(jīng)典的莫過于Prime算法和Kruskal算法了,這篇博文我會詳細講解Prime算法的設計思想與具體代碼的實現(xiàn),不要求數(shù)據(jù)結(jié)構學的有多好,只要跟著我的思路來,一步一步的分析,調(diào)試,終能成就自己,那就讓我們開始吧
    2022-05-05
  • C語言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法

    C語言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法

    這篇文章主要介紹了C語言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法,是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • C++ Struct結(jié)構體用法淺析

    C++ Struct結(jié)構體用法淺析

    前邊我們所定義的類,均是使用struct關鍵字來定義,但是C++中真正用于定義類的關鍵字為class,因為要C++兼容C,所以保留struct關鍵字,struct與class的用法完全相同
    2023-03-03
  • C語言代碼實現(xiàn)猜數(shù)字游戲

    C語言代碼實現(xiàn)猜數(shù)字游戲

    大家好,本篇文章主要講的是C語言代碼實現(xiàn)猜數(shù)字游戲,感興趣的同學趕快來看一看了吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 一文詳細講解C++精妙的哈希算法

    一文詳細講解C++精妙的哈希算法

    這篇文章主要介紹了C++精妙的哈希算法的相關資料,哈希結(jié)構通過哈希函數(shù)將關鍵碼映射到表中的特定位置,以提高搜索效率,理想的哈希函數(shù)應保證一致性、哈希值均勻分布、高計算效率與最小化沖突,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-10-10
  • C++?Socket實現(xiàn)TCP與UDP網(wǎng)絡編程

    C++?Socket實現(xiàn)TCP與UDP網(wǎng)絡編程

    本文主要介紹了C++?Socket實現(xiàn)TCP與UDP網(wǎng)絡編程,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C語言?使用qsort函數(shù)來進行快速排序

    C語言?使用qsort函數(shù)來進行快速排序

    排序方法有很多種:選擇排序,冒泡排序,歸并排序,快速排序等。?看名字都知道快速排序是目前公認的一種比較好的排序算法。因為他速度很快,所以系統(tǒng)也在庫里實現(xiàn)這個算法,便于我們的使用。?這就是qsort函數(shù)
    2022-02-02
  • 成員函數(shù)的重載、覆蓋與隱藏詳細解析

    成員函數(shù)的重載、覆蓋與隱藏詳細解析

    成員函數(shù)的重載、覆蓋(override)與隱藏很容易混淆,C++程序員必須要搞清楚概念,否則錯誤將防不勝防
    2013-10-10
  • 最大對稱字符串的算法

    最大對稱字符串的算法

    題目:輸入一個字符串,輸出該字符串中對稱的子字符串的最大長度。比如輸入字符串“google”,由于該字符串里最長的對稱子字符串是“goog”,因此輸出4。
    2013-03-03

最新評論

平罗县| 蓬莱市| 孟州市| 鄂尔多斯市| 洪雅县| 普格县| 东宁县| 眉山市| 乌苏市| 塘沽区| 兴隆县| 承德市| 高台县| 萨迦县| 兴文县| 梨树县| 无极县| 澎湖县| 德阳市| 集贤县| 陆丰市| 内黄县| 六盘水市| 洞口县| 焦作市| 壤塘县| 普宁市| 游戏| 张掖市| 西峡县| 敦煌市| 古丈县| 赣州市| 衡阳市| 保亭| 平邑县| 大悟县| 建宁县| 汝阳县| 宜兴市| 梁平县|