在c語言中,可以通過“(type_name) expression”語句來進行強制類型轉換,參數“type_name”表示新類型名稱,例如“(float)100”就是將int類型的數值100轉換為float類型。強制類型轉換是程序員明確提出的、需要通過特定格式的代碼來指明的一種類型轉換;在編程時,有需要類型轉換的時候都用上強制類型轉換運算符,是一種良好的編程習慣。
數據類型轉換就是將數據(變量、數值、表達式的結果等)從一種類型轉換為另一種類型。
c語言有兩種數據類型方式:
自動類型轉換:就是編譯器默默地、隱式地、偷偷地進行的數據類型轉換,這種轉換不需要程序員干預,會自動發生。
強制類型轉換
下面我們就詳細了解一下c語言的強制類型轉換。
強制類型轉換
自動類型轉換是編譯器根據代碼的上下文環境自行判斷的結果,有時候并不是那么“智能”,不能滿足所有的需求。如果需要,程序員也可以自己在代碼中明確地提出要進行類型轉換,這稱為強制類型轉換。
自動類型轉換是編譯器默默地、隱式地進行的一種類型轉換,不需要在代碼中體現出來;強制類型轉換是程序員明確提出的、需要通過特定格式的代碼來指明的一種類型轉換。換句話說,自動類型轉換不需要程序員干預,強制類型轉換必須有程序員干預。
強制類型轉換的格式為:
(type_name)expression
type_name
為新類型名稱
expression
為表達式
例如:
(float)a;//將變量a轉換為float類型(int)(x+y);//把表達式x+y的結果轉換為int整型(float)100;//將數值100(默認為int類型)轉換為float類型
請看下面的實例,使用強制類型轉換運算符把一個整數變量除以另一個整數變量,得到一個浮點數:
#include<stdio.h>intmain(){intsum=17,count=5;doublemean;mean=(double)sum/count;printf("Valueofmean:%f\n",mean);}
這里要注意的是強制類型轉換運算符的優先級大于除法,因此 sum 的值首先被轉換為 double 型,然后除以 count,得到一個類型為 double 的值。
類型轉換可以是隱式的,由編譯器自動執行,也可以是顯式的,通過使用強制類型轉換運算符來指定。在編程時,有需要類型轉換的時候都用上強制類型轉換運算符,是一種良好的編程習慣。
類型轉換只是臨時性的
無論是自動類型轉換還是強制類型轉換,都只是為了本次運算而進行的臨時性轉換,轉換的結果也會保存到臨時的內存空間,不會改變數據本來的類型或者值。請看下面的例子:
#include<stdio.h>intmain(){doubletotal=400.8;//總價intcount=5;//數目doubleunit;//單價inttotal_int=(int)total;unit=total/count;printf("total=%lf,total_int=%d,unit=%lf\n",total,total_int,unit);return0;}
注意看第 6 行代碼,total 變量被轉換成了 int 類型才賦值給 total_int 變量,而這種轉換并未影響 total 變量本身的類型和值。如果 total 的值變了,那么 total 的輸出結果將變為 400.000000;如果 total 的類型變了,那么 unit 的輸出結果將變為 80.000000。
擴展知識:常用的算術轉換
常用的算術轉換是隱式地把值強制轉換為相同的類型。編譯器首先執行整數提升,如果操作數類型不同,則它們會被轉換為下列層次中出現的最高層次的類型:
常用的算術轉換不適用于賦值運算符、邏輯運算符 && 和 ||。讓我們看看下面的實例來理解這個概念:
#include<stdio.h>intmain(){inti=17;charc='c';/*ascii值是99*/floatsum;sum=i+c;printf("Valueofsum:%f\n",sum);}
當上面的代碼被編譯和執行時,它會產生下列結果:
Valueofsum:116.000000
在這里,c 首先被轉換為整數,但是由于最后的值是 float 型的,所以會應用常用的算術轉換,編譯器會把 i 和 c 轉換為浮點型,并把它們相加得到一個浮點數。
感謝各位的閱讀,以上就是“c語言怎么進行強制類型轉換”的內容了,經過本文的學習后,相信大家對c語言怎么進行強制類型轉換這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是本站,小編將為大家推送更多相關知識點的文章,歡迎關注!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
亨利(Henley&Partners)護照指數全球排名最新季度更新出爐,針對全世界227 處旅行目的地,基于國際航空運輸管理局 (IATA) 的大數據統計,根據免簽國家和地區的數量來排名。在全球199個國家和地區的普通護照中,護照排名第一名的是日本護照,倒數第一的是阿富汗護照。排名前十名的國家和地區護照有下列。1、第一名,日本護照:免簽或者落地簽193個國家和地區;2、第二名,新加坡護照:免簽或者...
(資料圖)有關敲字的部首方面的知識,估計很多人不是太了解,今天就給大家詳細的介紹一下關于敲字的部首的相關內容。1、敲部首:高。2、敲:qiāoㄑㄧㄠˉ?!墩f文解字》:“敲,橫擿也。從攴、高聲?!?。手持卜以小擊是攴之范式。臺觀之上韜諸下是高之范式。攴、高兩范式疊加。從高往下勢短距手持卜以小擊是敲之范式。3、本義:打、擊。如:敲打、敲擊、敲詐、敲邊鼓(喻從旁幫人說話)、敲門磚、敲骨吸髓、旁敲側擊。...
農村信用社貸款要求:1、貸款人年齡在18-65周歲。有按期還本付息的能力。原應付貸款利息和到期貸款已基本清償;沒有清償的,已經作了貸款人認可的償還計劃。.2、農村在貸款社已開立基本賬戶或一般存款賬戶,并在該賬戶內保留有一定數額的支付保證金;自愿接受貸款社的信貸及結算的監督檢查,能夠保證定期向貸款社報送經營計劃和相關業務、財務報表。3、申請保證、抵押貸款的,必須具有符合規定的貸款保證人貸款抵押物或質...