C語言tips不完全彙總
阿新 • • 發佈:2019-02-04
以下內容是在學校學習C語言期間回答同學的疑問而總結的一些tips,因本人水平有限,如有錯誤還請各位指教。
1、
for(int i=0,i<strlen(s);i++)
這段迴圈中每次判斷迴圈條件是否滿足時都要呼叫一次strlen函式,但本身strlen(s)的值是不變的,所以可以單獨用一個變數來裝它,節省時間。
如:int temp=strlen(s);
for(i=0;i<temp;i++)
2、
fread與fwrite連續使用時必須在之間用一個fseek,否則其中一個無效,貌似用fflush也行,但是沒試過。
3、
’a’直接表示字元a,“a”表示一個地址,地址指向一個字串a。
4、
char s[20];
s="hello"
錯誤,必須用strcpy函式。因為s代表是的字元陣列s的首地址,而s="helo" 相當於改變陣列的首地址為字串“hello”的地址,這是不被允許的。
5、
for(double i=0;i!=10;i+=0.1)
該迴圈其實是一個死迴圈,原因是因為浮點數是不準確的,不能準確地表達0.1這個數字,這個現象也叫浮點數陷阱。
關於浮點數的一些知識: