欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言簡明講解類型轉(zhuǎn)換的使用與作用

 更新時間:2022年04月20日 16:56:56   作者:清風(fēng)自在?流水潺潺  
類型轉(zhuǎn)換(type?cast),是高級語言的一個基本語法。它被實現(xiàn)為一個特殊的運算符,以小括號內(nèi)加上類型名來表示,接下來讓我們一起來詳細了解

一、類型之間的轉(zhuǎn)換

C語言中的數(shù)據(jù)類型可以進行轉(zhuǎn)換

  • 強制類型轉(zhuǎn)換
  • 隱式類型轉(zhuǎn)換

二、強制類型轉(zhuǎn)換

強制類型轉(zhuǎn)換的語法

  • (Type)var_name;
  • (Type)value;

強制類型轉(zhuǎn)換的結(jié)果

  • 目標(biāo)類型能夠容納目標(biāo)值:結(jié)果不變
  • 目標(biāo)類型不能容納目標(biāo)值:結(jié)果將產(chǎn)生截斷

注意:不是所有的強制類型轉(zhuǎn)換都能成功,當(dāng)不能進行強制類型轉(zhuǎn)換時,編譯器將產(chǎn)生錯誤信息(比如將自定義數(shù)據(jù)類型轉(zhuǎn)換成基本數(shù)據(jù)類型)。

下面看一段強制類型轉(zhuǎn)換的代碼:

#include <stdio.h>
 
struct TS
{
    int i;
    int j;
};
 
struct TS ts;
 
int main()
{
    short s = 0x1122;
    
    char c = (char)s;    // 0x22
    
    int i = (int)s;      // 0x00001122
    
    int j = (int)3.1415; // 3
    
    unsigned int p = (unsigned int)&ts;
    
    //long l = (long)ts;   // error
    
    //ts = (struct TS)l;   // error
    
    printf("s = %x\n", s);
    printf("c = %x\n", c);
    printf("i = %x\n", i);
    printf("j = %x\n", j);
    printf("p = %x\n", p);
    printf("&ts = %p\n", &ts);
    
    return 0;
}

下面為輸出結(jié)果:

注意將自定義數(shù)據(jù)類型轉(zhuǎn)換成基本數(shù)據(jù)類型會報錯。

三、隱式類型轉(zhuǎn)換

隱式類型轉(zhuǎn)換是編譯器主動進行的類型轉(zhuǎn)換

注意:

低類型到高類型的隱式類型轉(zhuǎn)換是安全的,不會產(chǎn)生截斷

高類型到低類型的隱式類型轉(zhuǎn)換是不安全的,導(dǎo)致不正確的結(jié)果

四、表達式中的隱式類型轉(zhuǎn)換

隱式類型轉(zhuǎn)換的發(fā)生點

  • 算術(shù)運算式中,低類型轉(zhuǎn)換為高類型
  • 賦值表達式中,表達式的值轉(zhuǎn)換為左邊變量的類型
  • 函數(shù)調(diào)用時,實參轉(zhuǎn)換為形參的類型
  • 函數(shù)返回值,return表達式轉(zhuǎn)換為返回值類型

安全的隱式類型轉(zhuǎn)換:

下面看一段隱式類型轉(zhuǎn)換的代碼:

#include <stdio.h>
int main()
{
    char c = 'a';
    
    int i = c;    // safe
    
    unsigned int j = 0x11223344;
    
    short s = j;  // unsafe
    
    printf("c = %c\n", c);
    printf("i = %d\n", i);
    printf("j = %x\n", j);
    printf("s = %x\n", s);
    printf("sizeof(c + s) = %d\n", sizeof(c + s));
    return 0;
}

下面為輸出結(jié)果:

c 為 char 類型,s 為 short 類型,再進行四則運算前,各個比 int 窄的加數(shù)自動提升為 int,結(jié)果也為 int 類型,故 size 為4

五、小結(jié)

強制類型轉(zhuǎn)換由程序員負責(zé)完成

  • 轉(zhuǎn)換可能產(chǎn)生截斷
  • 轉(zhuǎn)換不區(qū)分類型的高低
  • 轉(zhuǎn)換不成功時,編譯器給出錯誤信息

隱式類型轉(zhuǎn)換由編譯器自動完成

  • 低類型向高類型的轉(zhuǎn)換是安全的
  • 高類型向低類型的轉(zhuǎn)換是不安全的

標(biāo)準(zhǔn)C編譯器的類型檢查是比較寬松的,因此隱式類型轉(zhuǎn)換可能帶來意外的錯誤。

到此這篇關(guān)于C語言簡明講解類型轉(zhuǎn)換的使用與作用的文章就介紹到這了,更多相關(guān)C語言 類型轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)單元測試的示例詳解

    C語言實現(xiàn)單元測試的示例詳解

    單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。這篇文章主要為大家介紹了C語言實現(xiàn)單元測試的方法,需要的可以參考一下
    2022-09-09
  • C++利用鏈表模板類實現(xiàn)簡易隊列

    C++利用鏈表模板類實現(xiàn)簡易隊列

    這篇文章主要為大家詳細介紹了C++利用鏈表模板類實現(xiàn)一個簡易隊列,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • C語言詳細講解#error與#line如何使用

    C語言詳細講解#error與#line如何使用

    這篇文章主要介紹了C語言中#error與#line如何使用,#error與#line雖然在語言里面用的比較少,但是還是有必要了解一下
    2022-04-04
  • C語言員工信息管理系統(tǒng)源代碼

    C語言員工信息管理系統(tǒng)源代碼

    這篇文章主要為大家詳細介紹了C語言員工信息管理系統(tǒng)源代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Vscode搭建遠程c開發(fā)環(huán)境的圖文教程

    Vscode搭建遠程c開發(fā)環(huán)境的圖文教程

    很久沒有寫C語言了,今天抽空學(xué)習(xí)下C語言知識,接下來通過本文給大家介紹Vscode搭建遠程c開發(fā)環(huán)境的詳細步驟,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細,需要的朋友參考下吧
    2021-11-11
  • Qt Design Studio安裝圖文教程

    Qt Design Studio安裝圖文教程

    本文主要介紹了Qt Design Studio安裝圖文教程,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C語言統(tǒng)計一串字符中空格鍵、Tab鍵、回車鍵、字母、數(shù)字及其他字符的個數(shù)(Ctrl+Z終止輸入)

    C語言統(tǒng)計一串字符中空格鍵、Tab鍵、回車鍵、字母、數(shù)字及其他字符的個數(shù)(Ctrl+Z終止輸入)

    這篇文章主要介紹了C語言統(tǒng)計一串字符中空格鍵、Tab鍵、回車鍵、字母、數(shù)字及其他字符的個數(shù)(Ctrl+Z終止輸入) ,需要的朋友可以參考下
    2018-03-03
  • C語言實現(xiàn)家庭理財系統(tǒng)

    C語言實現(xiàn)家庭理財系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)家庭理財系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++ 實現(xiàn)哈希表的實例

    C++ 實現(xiàn)哈希表的實例

    這篇文章主要介紹了C++ 實現(xiàn)哈希表的實例的相關(guān)資料,這里使用C++實現(xiàn)哈希表的實例幫助大家徹底理解哈希表的原理,需要的朋友可以參考下
    2017-08-08
  • 在vs2017上配置AppGameKit庫的圖文教程

    在vs2017上配置AppGameKit庫的圖文教程

    這篇文章主要介紹了在vs2017上配置AppGameKit庫的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04

最新評論