中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c語言怎么進行強制類型轉換

發布時間:2023-01-04 11:56:24 來源:億速云 閱讀:321 作者:iii 欄目:編程語言

這篇文章主要講解了“c語言怎么進行強制類型轉換”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“c語言怎么進行強制類型轉換”吧!

在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>
 
int main()
{
   int sum = 17, count = 5;
   double mean;
 
   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );
 
}

c語言怎么進行強制類型轉換

這里要注意的是強制類型轉換運算符的優先級大于除法,因此 sum 的值首先被轉換為 double 型,然后除以 count,得到一個類型為 double 的值。

類型轉換可以是隱式的,由編譯器自動執行,也可以是顯式的,通過使用強制類型轉換運算符來指定。在編程時,有需要類型轉換的時候都用上強制類型轉換運算符,是一種良好的編程習慣。

類型轉換只是臨時性的

無論是自動類型轉換還是強制類型轉換,都只是為了本次運算而進行的臨時性轉換,轉換的結果也會保存到臨時的內存空間,不會改變數據本來的類型或者值。請看下面的例子:

#include <stdio.h>
int main(){
    double total = 400.8;  //總價
    int count = 5;  //數目
    double unit;  //單價
    int total_int = (int)total;
    unit = total / count;
    printf("total=%lf, total_int=%d, unit=%lf\n", total, total_int, unit);
    return 0;
}

c語言怎么進行強制類型轉換

注意看第 6 行代碼,total 變量被轉換成了 int 類型才賦值給 total_int 變量,而這種轉換并未影響 total 變量本身的類型和值。如果 total 的值變了,那么 total 的輸出結果將變為 400.000000;如果 total 的類型變了,那么 unit 的輸出結果將變為 80.000000。

擴展知識:常用的算術轉換

常用的算術轉換是隱式地把值強制轉換為相同的類型。編譯器首先執行整數提升,如果操作數類型不同,則它們會被轉換為下列層次中出現的最高層次的類型:

c語言怎么進行強制類型轉換

常用的算術轉換不適用于賦值運算符、邏輯運算符 && 和 ||。讓我們看看下面的實例來理解這個概念:

#include <stdio.h>
 
int main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   float sum;
 
   sum = i + c;
   printf("Value of sum : %f\n", sum );
 
}

當上面的代碼被編譯和執行時,它會產生下列結果:

Value of sum : 116.000000

在這里,c 首先被轉換為整數,但是由于最后的值是 float 型的,所以會應用常用的算術轉換,編譯器會把 i 和 c 轉換為浮點型,并把它們相加得到一個浮點數。

感謝各位的閱讀,以上就是“c語言怎么進行強制類型轉換”的內容了,經過本文的學習后,相信大家對c語言怎么進行強制類型轉換這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安岳县| 山西省| 神池县| 全州县| 旺苍县| 嵩明县| 永平县| 南乐县| 永新县| 拜泉县| 奇台县| 菏泽市| 东城区| 中牟县| 民乐县| 金门县| 喀什市| 包头市| 泰宁县| 田阳县| 长武县| 伊吾县| 天气| 南通市| 丹江口市| 通许县| 土默特左旗| 资溪县| 高唐县| 兴安盟| 大埔区| 桐梓县| 常州市| 察哈| 新邵县| 池州市| 翼城县| 陆良县| 南陵县| 于田县| 诏安县|