a.隱式轉換:不同資料型別之間會進行自動型別轉換
自動型別轉換的規則:
自動轉換的要求:當前型別值範圍<=要轉換型別的值範圍
ps:
實型預設為double,且預設小數字均為6
整型預設為int
b.強制轉換:
(1)形式:(強制轉換的型別)(表示式)
(2)從低位開始,根據自身需要擷取位數
(3)溢位:最大值和最小值連線成迴圈,
即剛好超過最大值乙個單位時,會變為最小值,
剛好小於最小值乙個單位時,會變為最大值
(4)問題:
1.取值範圍大的型別 向 取值範圍小的型別 轉換時,可能會溢位
2.實型 向 整型 轉換時,會精度丟失
(5)格式控制符:
1.printf中可看作普通的強制轉換
2.scanf中格式控制符只能與被賦值的型別相同
否則:
大轉小
小轉大
逗號運算子:值以最後乙個表示式為準
math.h函式裡面所有的可用的函式
1 三角函式
double sin (double);
double cos (double);
double tan (double);
2 反三角函式
double asin (double); 結果介於[-pi/2, pi/2]
double acos (double); 結果介於[0, pi]
double atan (double); 反正切(主值), 結果介於[-pi/2, pi/2]
double atan2 (double, double); 反正切(整圓值), 結果介於[-pi/2, pi/2]
3 雙曲三角函式
double sinh (double);
double cosh (double);
double tanh (double);
4 指數與對數
double exp (double);
double sqrt (double);
double log (double); 以e為底的對數
double log10 (double);
double pow(double x, double y)//計算以x為底數的y次冪
5 取整
double ceil (double); 取上整
double floor (double); 取下整
6 絕對值
double fabs (double);
double cabs(struct complex znum) //求複數的絕對值
7 標準化浮點數
double frexp (double f, int p); 標準化浮點數, f = x 2^p, 已知f求x, p ( x介於[0.5, 1] )
double ldexp (double x, int p); 與frexp相反, 已知x, p求f
8 取整與取餘
double modf (double, double*); 將引數的整數部分通過指標回傳, 返回小數部分
double fmod (double, double); 返回兩引數相除的餘數
9其他
double hypot(double x, double y);//已知直角三角形兩個直角邊長度,求斜邊長度
double ldexp(double x, int exponent);//計算x*(2的exponent次冪)
double poly(double x, int degree, double coeffs )//計算多項式
nt matherr(struct exception *e)//數學錯誤計算處理程式
source: 《c & c++ code capsules》
c 型別轉換運算子
c 中有4個型別轉換運算子,使裝換過程更規範 dynamic cast type name expression 如果轉型失敗則返回0,即空指標。該運算子的用途是,使得能夠在類層次結構中進行向上轉換 由於 is a關係,這樣的型別轉換時安全的 而不允許其他轉換。二 const cast const ...
C 型別轉換運算子
隱式轉換,是針對不同型別之間的賦值和運算,函式呼叫傳遞引數 這些的轉換都是由編譯器自動完成 char ch int i ch 顯式轉換 由程式設計師在變數前面新增型轉換 char pc char pb void ps void pa 通過上述的兩種方式,c語言大部分的型別轉換都可以順利進行,c 繼承...
C 型別轉換運算子
用於 指向派生類物件的 基類指標轉換成派生類指標。如果轉換失敗,則返回0,即空指標。通過判斷轉換是否成功,來決定是否用派生類裡的函式 基類中可能沒有那個函式 class a class b public a class c public b a a new a a b new b a c new c...