一.臨時變數溢位
#include
using namespace std;
long multiply(int m,int n)
int main()
int main()
{cout<
二.整除的精度問題
計算出來的結果不是期待的值
bug分析:
1/6,1和6都是整數,屬於整除運算,得到的結果應該是整數,整除運算會自動忽略掉小數部分,所以得到的值為0,將0賦值給result,
所以得到的值是0
正確**:
result=1.0/6.0;
2 詞法 陷阱
某些編譯器允許巢狀注釋。請寫乙個程式測試,要求 無論是對允許巢狀注釋的編譯器,還是對不允許巢狀注釋的編譯器,該程式都能正常通過編譯,但是這兩者情況下執行的結果卻不相同。include includeusing namespace std int main void 不允許巢狀 已測試 bufsize...
《C陷阱與缺陷》 2
4 整數溢位 1 無符號數 0 不可能發生溢位,當它超過範圍時,從0開始重新計數 有符號數 0 可能發生溢位,並且 溢位 的結果不固定 2 當乙個無符號數和有符號數相加的時候,有符號數自動轉化為無符號數 3 判斷溢位 方法一 強制轉換成無符號數 if unsigned a unsigned b in...
C陷阱與缺陷(小結2)
語法分析 語句 宣告的語法細節 1.理解函式宣告 任何c變數的宣告都由兩部分組成 型別以及一組類似表示式的宣告符 如 float h 其中型別為float,宣告符為 h 整個宣告表示 h 為乙個函式指標,h所指向函式的返回值為浮點型。由乙個給定型別的變數的宣告得到該型別的型別轉換符 將變數名和宣告部...