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

一文搞懂C++中的四種強(qiáng)制類型轉(zhuǎn)換

 更新時(shí)間:2021年07月07日 11:22:37   作者:杜Xinyu  
很多朋友向小編了解C語(yǔ)言中怎么進(jìn)行強(qiáng)制類型轉(zhuǎn)換呢?在這小編告訴大家強(qiáng)制類型轉(zhuǎn)換可以分為兩種,一種是隱式類型轉(zhuǎn)換一種是顯示類型轉(zhuǎn)換,下面通過示例代碼給大家介紹下,需要的朋友參考下吧

在了解c++的強(qiáng)制類形轉(zhuǎn)換的時(shí)候,先看看在c語(yǔ)言中是怎么進(jìn)行強(qiáng)制類形轉(zhuǎn)換的。

C語(yǔ)言中的強(qiáng)制類形轉(zhuǎn)換分為兩種

  •  隱式類型轉(zhuǎn)換
  • 顯示類型轉(zhuǎn)換
int main()
{
	int a = 97;
	char ch = a;	// 隱式類型轉(zhuǎn)換
	int b = (int)ch;	// 顯示類型轉(zhuǎn)換 

	cout << "a = " << a << endl;
	cout << "ch = " << ch << endl;
	cout << "b = " << b << endl;

	int num = 10;
	int* p = &num;
	// int ret = p; Error,因?yàn)閜的類型和ret的類型不一致,所以隱式轉(zhuǎn)換失敗
	int ret = (int)p;

	cout << "num = " << num << endl;
	cout << "&num = " << &num << endl;
	cout << "p = " << p << endl;
	cout << "ret = " << ret << endl;

	return 0;
}

我們看出來,在相關(guān)數(shù)據(jù)類型之間的轉(zhuǎn)換是可以隱式轉(zhuǎn)換的,如果是倆個(gè)不相關(guān)的數(shù)據(jù)類型之間的轉(zhuǎn)換,必須是顯式類型轉(zhuǎn)換。

C++中的強(qiáng)制類形轉(zhuǎn)換

C++中有四種強(qiáng)制類型轉(zhuǎn)換

  1. static_cast
  2. reinterpret_cast
  3. const_cast
  4. dynamic_cast

static_cast靜態(tài)轉(zhuǎn)換,任何標(biāo)準(zhǔn)轉(zhuǎn)換都可以用它,但是不能用于兩個(gè)不相關(guān)的類型轉(zhuǎn)換,其實(shí)就是有點(diǎn)像隱式類型轉(zhuǎn)換了。

int main()
{
	int i = 97;
	char ch = static_cast<char>(i);

	cout << "i = " << i << endl;
	cout << "ch = " << ch << endl;

	return 0;
}

reinterpret_cast

reinterpret_cast:將一種類型轉(zhuǎn)換為另外一種類型,但是如果是相關(guān)類型則不可以轉(zhuǎn)換,會(huì)報(bào)錯(cuò),無效類型轉(zhuǎn)換。

int main()
{
	int i = 97;
	// char ch = reinterpret_cast<char>(i); // Error 這樣的轉(zhuǎn)換類型屬于無效轉(zhuǎn)換類型
	int* p = reinterpret_cast<int*>(i);

	cout << "i = " << i << endl;
	cout << "&i = " << &i << endl;
	cout << "p = " << p << endl;

	return 0;
}

在這里插入圖片描述

這個(gè)的輸出結(jié)果就很意思,我們可以觀察到,p 是我們定義的一個(gè) int* 變量,但是我們使用reintrtpret_cast的時(shí)候并不是把 i 變量的地址寫了進(jìn)去,而是將 i 變量的值,用 int* 類型的格式存儲(chǔ)了起來,也就是說 int* p 的 p 存放的不是 i 的地址,而是,變量 i 的值,只不過是用16進(jìn)制來存儲(chǔ)的。

到此這篇關(guān)于C++中的四種強(qiáng)制類形轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)C++強(qiáng)制類形轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • linux使用gcc編譯c語(yǔ)言共享庫(kù)步驟

    linux使用gcc編譯c語(yǔ)言共享庫(kù)步驟

    這篇文章主要介紹了在linux中使用gcc編譯c語(yǔ)言共享庫(kù)的步驟,大家參考使用吧
    2014-01-01
  • opencv實(shí)現(xiàn)顏色檢測(cè)

    opencv實(shí)現(xiàn)顏色檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)顏色檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • DEVC++實(shí)現(xiàn)推箱子小游戲

    DEVC++實(shí)現(xiàn)推箱子小游戲

    這篇文章主要為大家詳細(xì)介紹了DEVC++實(shí)現(xiàn)推箱子小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • Qt實(shí)現(xiàn)解壓帶有密碼的加密文件

    Qt實(shí)現(xiàn)解壓帶有密碼的加密文件

    Quazip是Qt平臺(tái)下面的一個(gè)壓縮解壓縮庫(kù)。本文將利用Quazip實(shí)現(xiàn)解壓帶有密碼的加密文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-02-02
  • C語(yǔ)言用easyx實(shí)現(xiàn)消磚塊游戲

    C語(yǔ)言用easyx實(shí)現(xiàn)消磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言消磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 深入理解C語(yǔ)言中指針常量和常量指針

    深入理解C語(yǔ)言中指針常量和常量指針

    本文介紹了C語(yǔ)言中的指針常量和常量指針,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 將字符串str1復(fù)制為字符串str2的三種解決方法

    將字符串str1復(fù)制為字符串str2的三種解決方法

    以下是對(duì)將字符串str1復(fù)制為字符串str2的三種解決方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-10-10
  • C++實(shí)現(xiàn)SLR文法分析法

    C++實(shí)現(xiàn)SLR文法分析法

    大家好,本篇文章主要講的是C++實(shí)現(xiàn)SLR文法分析法,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • C++中發(fā)聲函數(shù)Beep用法

    C++中發(fā)聲函數(shù)Beep用法

    本文給大家分享的是Beep函數(shù)的用法以及會(huì)使揚(yáng)聲器發(fā)出簡(jiǎn)單的聲音的示例,有需要的小伙伴可以參考下
    2017-05-05
  • 順序線性表的代碼實(shí)現(xiàn)方法

    順序線性表的代碼實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄樞蚓€性表的代碼實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04

最新評(píng)論

沾化县| 伽师县| 甘南县| 那曲县| 海口市| 沁源县| 灌南县| 临夏市| 乐东| 兴城市| 宜丰县| 偏关县| 米易县| 清流县| 苍山县| 象州县| 鄂尔多斯市| 大理市| 大厂| 刚察县| 雅江县| 安乡县| 西丰县| 米林县| 南漳县| 常山县| 江孜县| 溧阳市| 耿马| 利津县| 天水市| 白水县| 德化县| 定安县| 砀山县| 阳朔县| 水富县| 太谷县| 鄱阳县| 永州市| 昌宁县|