今天在看三劍客之《c陷阱與缺陷》時偶然發現的乙個陷阱,傳遞同乙個引數、呼叫同乙個函式,輸出的結果卻不一樣,以下是源**:
#includedouble square(double);
main()
double square(double x)
對於第乙個輸出,相信大家都毫無疑問的回答是25,但是第二個輸出,如果將(int)強制轉換去掉,則輸出結果就變成了 0 ,對你沒有看錯就是 0 。
仔細看square函式,它的函式簽名是double square(double),返回值型別為double型,而在輸出時沒有進行轉換,則直接變成了 0 。
如果不信,可以直接看第三個輸出,輸出結果為 25 。
這是博主偶然發現的乙個陷阱,望大家在以後的輸出時,應當注意型別是否匹配,是否需要轉換。
C語言輸入輸出格式符
printf函式 格式輸出函式 1.一般格式 printf 格式控制,輸出表列 例如 printf i d,ch c n i,ch 說明 1 格式控制 是用雙撇號括起來的字串,也稱 轉換控制字串 它包括兩種資訊 格式說明 由 和格式字元組成,它的作用是將輸出的資料轉換為指定的格式輸出。普通字元,即需...
C語言的printf輸出格式控制
c語言的printf輸出格式控制 1 轉換說明符 a a 浮點數 十六進製制數字和p p 記數法 c99 c 字元 d 有符號十進位制整數 f 浮點數 包括float和doulbe e e 浮點數指數輸出 e e 記數法 g g 浮點數不顯無意義的零 0 i 有符號十進位制整數 與 d相同 u 無符...
C語言中的各輸出格式含義
g是c語言printf 函式的乙個輸出格式型別,它表示以 f e中較短的輸出寬度輸出單 雙精度實數,在指數小於 4或者大於等於精度時使用 e格式 printf 輸出格式型別說明 輸出型別 格式字元意義 a 浮點數 十六進製制數字和p 計數法 c99 a 浮點數 十六進製制數字和p 計數法 c99 c...