C語言數據類型的轉換
類型轉換
在 C 語言程序中,經常需要對不同類型的數據進行運算,為了解決數據類型不一致的問題,需要對數據的類型進行轉換。例如一個浮點數和一個整數相加,必須先將兩個數轉換成同一類型。C 語言程序中的類型轉換可分為隱式和強制類型轉換兩種。
隱式類型轉換
想要一起學習C 的可以加裙二四八八九四四三零,有很多大神一起學習交流,有資源,然後可以訂閱轉發一下
所謂隱式類型轉換指的是,系統自動將取值範圍小的數據類型轉換為數據取值範圍大的數據類型,它是由系統自動轉換完成的。例如,將 int 類型和 double類型的數據相加,系統會將 int類型的數據轉換為 double 類型的數據,再進行相加操作,具體示例如下:
int num1=12;
double num2=10.5;
num1+num2;
上述示例代碼中,由於 double 類型的取值範圍大於 int 類型,因此,將 int類型的 num1 與 double 類型的 num2相加時,系統會自動將 num1的數據類型由 int轉換為 double類型,從而保證數據的精度不會丟失。
強制類型轉換
所謂強制類型轉換指的是使用強制類型轉換運算符,將一個變數或表達式轉化成所需的類型,其基本語法格式如下所示:
(類型名)(表達式)
在上述格式中,類型名和表達式都需要用括弧括起來,具體示例如下:
上述講解的兩種類型轉換,看起來簡單,但在使用時需要注意以下幾個細節:
(1)浮點型與整型
將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分,只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式,即小數點後帶若干個 0 。需要注意的是,賦值時的類型轉換實際上是強制的。
(2)單、雙精度浮點型
由於 C 語言中的浮點值總是用雙精度表示的,所以 float 型數據參與運算時只需要在尾部加 0 延長為 double 型數據。double 型數據轉換為 float 型時,會造成數據精度丟失,有效位以外的數據將會進行四捨五入。
(3)char型與 int型
將 int 型數值賦給 char 型變數時,只保留其最低 8 位,高位部分捨棄。將char 型數值賦給 int 型變數時, 一些編譯程序不管其值大小都作正數處理,而另一些編譯程序在轉換時會根據 char 型數據值的大小進行判斷,若值大於127,就作為負數處理。對於使用者來講,如果原來 char 型數據取正值,轉換後仍為正值。如果原來 char 型值可正可負,則轉換後也仍然保持原值,只是數據的內部表示形式有所不同。
(4)int型與 long型
long 型數據賦給 int 型變數時,將低 16 位值送給 int 型變數,而將高 16 位截斷捨棄。(這裡假定 int型佔兩個位元組)。 將 int型數據送給 long型變數時,其外部值保持不變,而內部形式有所改變。
(5)無符號整數
將一個unsigned型數據賦給一個長度相同的整型變數時(如:unsignedint、unsigned longlong, unsigned shortshort) ,內部的存儲方式不變,但外部值卻可能改變。將一個非 unsigned整型數據賦給一個長度相同的 unsigned 型變數時, 內部存儲形式不變,但外部表示時總是無符號的。
想要一起學習C 的可以加裙二四八八九四四三零,有很多大神一起學習交流,有資源,然後可以訂閱轉發一下


※C語言程序如何理解指針
※C程序解析:用C語言編寫你的第一個自定義函數
※適合新手學習的幾個經典程序,值得反覆琢磨,不要偷懶!
※教程:c語言全局變數與函數調用,循環綜合測試
※C加加如何實現可變參數函數的調用?
TAG:C加加 |
※C語言數據類型、常量和變數
※VBA之數據類型和常量與變數
※XSD 數值數據類型
※R語言:數據類型(向量、數組、矩陣、 列表和數據框)
※從語言語素—音節編碼類型看世界語言分類
※變數、數據類型、標識符
※XSD 雜項 數據類型
※XSD 字元串 數據類型
※淺談數字貨幣交易所的訂單類型
※JS 中對變數類型的判斷
※Perl 數據類型
※機器學習探索性數據分析的數據類型
※類型論:一類新的數學
※數據類型「系統自動編號」
※常量、變數、數據類型、標識符
※MySQL資料庫之數據類型
※Python數據類型、運算符、變數
※Swift 類型轉換
※C++模板取函數參數類型和返回值類型的方法
※AB血型君難忘的女生類型