C 語言中的類型轉換 有時,您必須將一種數據類型的值轉換為另一種類型。這稱為類型轉換 隱式轉換 當您將一種類型的值分配給另一種類型的變數時,編譯器會自動進行隱式轉換。 例如,如果您將一個 int 值分配給一個 float 類型: // 自動轉換:int to float float myFloat ...
C 語言中的類型轉換
有時,您必須將一種數據類型的值轉換為另一種類型。這稱為類型轉換
隱式轉換
當您將一種類型的值分配給另一種類型的變數時,編譯器會自動進行隱式轉換。
例如,如果您將一個 int
值分配給一個 float
類型:
// 自動轉換:int to float
float myFloat = 9;
printf("%f", myFloat); // 輸出 9.000000
如您所見,編譯器會自動將 int
值 9 轉換為 float
值 9.000000。
這可能是危險的,因為您可能會在某些情況下失去對特定值的控制。
尤其是如果相反的情況 - 以下示例會自動將 float
值 9.99 轉換為 int
值 9:
// 自動轉換:float to int
int myInt = 9.99;
printf("%d", myInt); // 輸出 9
0.99 發生了什麼?我們可能想要在我們的程式中使用這個數據!所以要小心。您必須瞭解編譯器在這些情況下的工作方式,以避免意外結果。
另一個例子,如果您將兩個整數 5 除以 2,您知道結果是 2.5。正如您在此頁面的開頭所知,如果您將 sum
存儲為整數,結果將只顯示數字 2。因此,將 sum
存儲為 float
或 double
會更好,對嗎?
float sum = 5 / 2;
printf("%f", sum); // 輸出 2.000000
為什麼結果是 2.00000 而不是 2.5?好吧,因為 5 和 2 在除法中仍然是整數。在這種情況下,您需要將整數值手動轉換為浮點值(參見下文)。
顯式轉換
顯式轉換是通過在值之前放置類型括弧 ()
來手動完成的。
考慮到我們上面示例中的問題,我們現在可以得到正確的結果:
// 手動轉換: int to float
float sum = (float) 5 / 2;
printf("%f", sum); // 輸出 2.500000
您也可以將類型放在變數前面:
int num1 = 5;
int num2 = 2;
float sum = (float) num1 / num2;
printf("%f", sum); // 輸出 2.500000
由於您在上一章中學習了“小數精度”,您可以通過刪除多餘的零(如果您願意)使輸出更清晰:
int num1 = 5;
int num2 = 2;
float sum = (float) num1 / num2;
printf("%.1f", sum); // 輸出 2.5
C 語言中的常量
如果您不想讓其他人(或自己)更改現有變數的值,可以使用 const
關鍵字。
這將聲明變數為“常量”,這意味著它不可更改,只讀:
const int myNum = 15; // myNum 始終為 15
myNum = 10; // 錯誤:對只讀變數 'myNum' 進行賦值
當您擁有不太可能改變的值時,應始終將變數聲明為常量:
const int minutesPerHour = 60;
const float PI = 3.14;
關於常量的註意事項
當您聲明一個常量變數時,必須為其分配一個值:
// 就像這樣:
const int minutesPerHour = 60;
// 然而,這不起作用:
const int minutesPerHour;
minutesPerHour = 60; // 錯誤
常量在程式中可以提高代碼的可讀性,並防止在程式中無意中更改重要的值。
最後
為了方便其他設備和平臺的小伙伴觀看往期文章:
微信公眾號搜索:Let us Coding
,關註後即可獲取最新文章推送
看完如果覺得有幫助,歡迎 點贊、收藏、關註