C型別轉換,運算子,math h

2021-07-15 19:17:38 字數 2371 閱讀 3661

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...