c语言float转换为int_C语言的隐式类型转换和显示类型转换
C語言是一種強類型語言,當(dāng)使用一種類型的對象代替另外一種類型的對象進行操作時,必須首先進行類型轉(zhuǎn)換。
類型轉(zhuǎn)換的方式,一般可分為隱式類型轉(zhuǎn)換和顯示類型轉(zhuǎn)換(也稱為強制類型轉(zhuǎn)換)。
1、隱式類型轉(zhuǎn)換
隱式類型轉(zhuǎn)換由編譯器自動進行,不需要程序員干預(yù)。
隱式類型轉(zhuǎn)換通常有兩種情況:賦值轉(zhuǎn)換和運算轉(zhuǎn)換。
賦值轉(zhuǎn)換:將一種類型的數(shù)據(jù)賦值給另外一種類型的變量時,發(fā)生隱式類型轉(zhuǎn)換。比如:
int x = 1.23; // 1.23是double類型,先隱式轉(zhuǎn)換為intfloat y = 66; // 66是int類型,先隱式轉(zhuǎn)換為float數(shù)據(jù)類型的提示:
在對變量賦值時,若等號兩邊的數(shù)據(jù)類型不同,需要把右邊表達式的類型轉(zhuǎn)換為左邊變量的類型,這可能會導(dǎo)致數(shù)據(jù)失真(精度降低),所以隱式類型轉(zhuǎn)換不一定是安全的。
運算轉(zhuǎn)換:C語言中不同類型的數(shù)據(jù)需要轉(zhuǎn)換成同一類型,才可以進行計算。
字符型、整型、浮點型之間的變量通過隱式類型轉(zhuǎn)換,可以進行混合運算(不是所有數(shù)據(jù)類型之間都可以隱式轉(zhuǎn)換),轉(zhuǎn)換規(guī)則如下:
- 轉(zhuǎn)換按數(shù)據(jù)長度增加的方向進行,以保證數(shù)據(jù)精度不降低。比如int類型和double類型相加時,int類型就會被隱式轉(zhuǎn)換為double類型,然后再進行運算;
- 在條件判斷中,非布爾類型自動轉(zhuǎn)換為布爾類型。算術(shù)類型的值為0,則轉(zhuǎn)換為false;否則轉(zhuǎn)換為true;
- 類型轉(zhuǎn)換不改變對象內(nèi)存的值,當(dāng)有符號類型轉(zhuǎn)換為無符號類型時,其值可能發(fā)生變化。比如:
運行結(jié)果為:
x: -1, y: 42949672952、顯示類型轉(zhuǎn)換
隱式類型轉(zhuǎn)換是編譯器自動隱式進行的,需要在代碼中體現(xiàn),而顯示類型轉(zhuǎn)換由程序員明確指定,C語言顯示類型轉(zhuǎn)換也稱為強制類型轉(zhuǎn)換。
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;}運行結(jié)果為:
x: 2.5y: 3其中,(int)1.5 * 2.5 是先對1.5進行強制類型轉(zhuǎn)換,再和2.5相乘;
而(int)(1.5 * 2.5)通過括號提高優(yōu)先級,先進行1.5 * 2.5的運算,再進行強制類型轉(zhuǎn)換。
總結(jié)
以上是生活随笔為你收集整理的c语言float转换为int_C语言的隐式类型转换和显示类型转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 就php干活,php可以做什么?,懂得这
- 下一篇: word光标一直闪动_6个一分钟就能学会