c++中的型別轉換
1、隱式型別轉換規則:
這種轉換常見於兩個不同型別的運算元進行運算的時候會發生。
(1) 如果運算元有浮點型別,則會轉換成浮點型別
例如:(int) + (float) ---> (float) + (float)
(int) + (double) ---> (double) + (double)
(2) 如果兩個運算元都是整型,但是級別不同,會進行整型提公升
當兩個運算元都是 有/無 符號型別的時候,將級別低的轉成級別高的型別 例如:(short) + (int) -----> (int) + (int)
當兩個運算元,乙個是有符號型別,另乙個是無符號型別,無符號型別的級別比有符號型別要高,那麼把有符號的型別轉成無符號型別
當兩個運算元,乙個是有符號型別,另乙個是無符號型別,無符號型別的級別比有符號低,且有符號可以容納無符號全部的值(位元組數更大),那麼把無符號轉成有符號型別。
否則,兩者轉成有符號的無符號型別。
2、函式引數的型別轉換:
當函式的實參型別比形參規定的型別要低就會進行整型提公升 例如:f(int i){} short i = 1 ; f(i) 這個時候 i 會進行型別提公升到 int
同理 float -----> double
3、強制型別轉換:
c語言中的強制型別轉換方式: (typename)value
c++中的強制型別轉換方式:typename(value)
c++中後續提供了4種更安全的型別轉換方式,其中一種是 static_cast()
4、auto關鍵字
c++重新定義了auto關鍵字,可以根據字面值的型別來決定變數的型別。 例如: auto a = 1.0f; 這個時候 a 會自動變成 float型別
auto設計出來是用於複雜的復合型別宣告之用的,這個在後續學習stl模板庫的時候,會再次提到。
C 學習筆記 day03
為準備複試上機而開始記筆記,僅記錄新知識點,昨天做的太少了,今天多做一點 include intstrtoint char str1 return result sign 不過oj可能會報錯說 strrev函式並未定義 既然如此,那就重寫一下字串反轉函式 void strrev char s str...
學習筆記day03
邏輯運算子 異或 符號兩邊結果相同,結果為false 符號兩邊結果不同,結果為true 面試題1,雙與 也叫短路運算,因為左側如果為假的話直接不判斷右側結果 與 c無論左邊結果運算是什麼,右邊都參與運算。2,雙或 和或 運算結果一樣,但是運算過程有點小區別。無論左邊運算結果是什麼,右邊都參與運算 當...
爬蟲學習筆記day03
3.寫 3.ssl證書認證 引數名 verify true false 1.verify true 預設,進行ssl證書認證 2.verify false 不做認證 4.urllib.request中handler處理器 1.定義 自定義的urlopen 方法,因為模組自帶的urlopen不支援 等...