原則上來說,c/c++是一種嚴格資料型別的語言,簡單說,語法對於函式宣告、賦值、傳參等涉及到資料型別的地方都會有嚴格的驗證和匹配規則。
但也有」例外「——c/c++的潛規則之預設資料型別。
這裡舉兩個例子:
1.函式引數
bool dosomething(unsigned data);
上面的寫法是合法的,可以通過編譯,其中,data的資料型別是unsigned int,即無符號整型。
注意,不能寫成這樣:
bool dosomething(data);
編譯器是不會把data腦補成int型別的。
2.函式返回值
foo(void);
在c中這樣的寫法是合法的,foo的返回值型別預設為int型別;值得注意的是,c++中是不允許這樣寫的。
unsigned foo(void);
參考例1,很容易知道,foo的返回值型別是unsingned int型別,這在c和c++中都是合法的。
C C 資料型別
由於對各種資料型別的長度記憶有點亂,便整理下用到的資料型別,方便查詢與記憶。一 資料型別介紹如表 二 說明 1 型別修飾符signed和unsigned用於修飾字元型和整形。2 型別修飾符short和long用於修飾字元型和整形。3 當用signed和unsigned short和long修飾int...
c c 資料型別轉換
c c 資料型別轉換1 float,char,string,cstring unicode 統一碼 萬國碼 單一碼 是一種在計算機上使用的字元編碼。它為每種語言中的每個字元設定了統一並且唯一的二進位制編碼,以滿足跨語言 跨平台進行文字轉換 處理的要求。1990年開始研發,1994年正式公布。隨著計算...
C C 資料型別長度
我們在編寫 c c 時肯定希望在32位和64位系統都能正常執行,那麼我們就需要注意基本資料型別的長度在32位與64位中的變化 另外這種變化還與編譯器相關。64位 gcc 是 lp64 即 long 和 pointer 是64位,具體的 gcc 編譯器 32 位 64位 char 1 1short 2...