當前位置:
首頁 >
c语言float转换为int_C语言的隐式类型转换和显示类型转换
發布時間:2024/7/19
60
豆豆
生活随笔
收集整理的這篇文章主要介紹了
c语言float转换为int_C语言的隐式类型转换和显示类型转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C語言是一種強類型語言,當使用一種類型的對象代替另外一種類型的對象進行操作時,必須首先進行類型轉換。
類型轉換的方式,一般可分為隱式類型轉換和顯示類型轉換(也稱為強制類型轉換)。
1、隱式類型轉換
隱式類型轉換由編譯器自動進行,不需要程序員干預。
隱式類型轉換通常有兩種情況:賦值轉換和運算轉換。
賦值轉換:將一種類型的數據賦值給另外一種類型的變量時,發生隱式類型轉換。比如:
int x = 1.23; // 1.23是double類型,先隱式轉換為intfloat y = 66; // 66是int類型,先隱式轉換為float數據類型的提示:
在對變量賦值時,若等號兩邊的數據類型不同,需要把右邊表達式的類型轉換為左邊變量的類型,這可能會導致數據失真(精度降低),所以隱式類型轉換不一定是安全的。
運算轉換:C語言中不同類型的數據需要轉換成同一類型,才可以進行計算。
字符型、整型、浮點型之間的變量通過隱式類型轉換,可以進行混合運算(不是所有數據類型之間都可以隱式轉換),轉換規則如下:
- 轉換按數據長度增加的方向進行,以保證數據精度不降低。比如int類型和double類型相加時,int類型就會被隱式轉換為double類型,然后再進行運算;
- 在條件判斷中,非布爾類型自動轉換為布爾類型。算術類型的值為0,則轉換為false;否則轉換為true;
- 類型轉換不改變對象內存的值,當有符號類型轉換為無符號類型時,其值可能發生變化。比如:
運行結果為:
x: -1, y: 42949672952、顯示類型轉換
隱式類型轉換是編譯器自動隱式進行的,需要在代碼中體現,而顯示類型轉換由程序員明確指定,C語言顯示類型轉換也稱為強制類型轉換。
C語言顯示類型比較簡單,格式如下:
type var = (type)(expression);比如下面這段代碼:
#include using namespace std;int main(){ double x = (int)1.5 * 2.5; cout << "x: " << x << endl; double y = (int)(1.5 * 2.5); cout << "y: " << y << endl; return 0;}運行結果為:
x: 2.5y: 3其中,(int)1.5 * 2.5 是先對1.5進行強制類型轉換,再和2.5相乘;
而(int)(1.5 * 2.5)通過括號提高優先級,先進行1.5 * 2.5的運算,再進行強制類型轉換。
總結
以上是生活随笔為你收集整理的c语言float转换为int_C语言的隐式类型转换和显示类型转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 就php干活,php可以做什么?,懂得这
- 下一篇: word光标一直闪动_6个一分钟就能学会