C 中定義的配套型別總結

2021-09-25 07:51:52 字數 636 閱讀 7601

string類中size()函式的返回值的型別為由string定義的size_type型別,是乙個無符號型別的值,且可以存放下任何string的長度

vector類中size()函式返回值的型別為由vector定義的size_type型別,是乙個無符號型別的值

要使用vector的size_type需要先指出vector中元素的型別

vector::size_type//錯誤

vector::size_type//正確

迭代器可以進行加減運算,得到的結果是這兩個迭代器的距離,結果的型別為difference_type的帶符號整數,因為該距離可以為正又可以為負

陣列的下標也是一種配套型別,為size_t型別,它是無符號整形,因為陣列下標總是大於等於0

兩個指標相減得到的結果是名為ptrdiff_t的標準庫型別,它是一種帶符號的型別,跟迭代器類似。兩個指標相減有意義,表示這兩個指標之間的距離,兩個指標相加無意義,如果p是乙個空指標,允許它加上或者減去乙個值為0的常量表示式,結果仍然為空指標?兩個空指標相減的結果為0

C 中的型別重定義

發現重複定義是由於從兩個不同的路徑包含了同乙個標頭檔案而引起的,同事也建議從另外乙個路徑開啟工程試試,這才慢慢發現了原因。這個原因可能有些拗口,而事實上要出現這種錯誤也有些 曲折 讓我從不同情況下的型別重定義來解釋一下吧。我總結的型別重定義情況有三。一 沒有在檔案頭加 pragma once指示符。...

C 中的型別轉換總結

1 型別轉換 1 在下面這些表示式中,編譯器會自動轉換運算物件的型別 1 在大多數表示式中,比int型別小的整型值首先提公升為較大的整數型別。2 在條件中,非布林值轉換成布林型別。3 初始化過程中,初始值轉換成變數的型別 在賦值語句中,右側運算物件轉換成左側運算物件的型別。4 如果算術運算或關係運算...

C 中的自定義型別轉換

using system using system.collections.generic using system.text 使用者自定義轉換 所有的使用者自定義轉換都是靜態的,要使用static關鍵字 使用者自定義轉換分顯示和隱示,它們用implicit 隱式轉換 或 explicit 顯示轉換...