1. 程式人生 > >C語言程式設計小知識三

C語言程式設計小知識三

  1. 關於函式指標:
    函式指標的宣告方法為:
    函式型別 (標誌符指標變數名) (形參列表);
    注1:“函式型別”說明函式的返回型別,“(標誌符指標變數名 )”中的括號不能省,若省略整體則成為一個函式說明,說明了一個返回的資料型別是指標的函式,後面的“形參列表”表示指標變數指向的函式所帶的引數列表。例如:
               int func(int x); /* 宣告一個函式 */
               void (*f) (int x); /* 宣告一個函式指標 */
               f=func; /* 將func函式的首地址賦給指標f */
    賦值時函式func不帶括號,也不帶引數,由於func代表函式的首地址,因此經過賦值以後,指標f就指向函式func(x)的程式碼的首地址。函式名稱也是一個指標,但是它是死的,但是函式指標卻是活的,可以根據需要讓他指向別的函式。但是要求這種函式的引數型別必須保持一致,因此在工作中,原來想著有很多的冗餘形參,這一點並不能直接刪除,而要保持一致性,這樣在載入的過程中才不會出問題。總之在使用的時候一定要十分謹慎。指向函式的指標變數是不能夠進行++或者–運算的。指標函式是指返回值是指標的函式,即本質是一個函式。
  2. 檔案操作中經常用到的exit(0)需要包含<stdlib.h>,另外一個指向檔案的指標pointer,可以用feof(pointer)來判斷是否遇到輸入檔案的結束標誌,結束時該值為1.
  3. 關於如何讀寫字串:
    函式名     呼叫形式     功能            返回值
    fgets     fgets(str,n,fp)  從fp指向的檔案讀入一個    讀成功,返回
                 長度為(n-1)的字串,存放  地址str,失敗則返回NULL
                 到字元陣列str中                   
    fputs    fputs(str,fp)   把str所指向的字串寫到    輸出成功,返回0;
                  檔案指標變數fp所指向的    否則返回非0值
                  檔案中。
  4. fgets和fputs這兩個函式的功能類似於gets和puts函式,只是gets和puts以終端為讀寫物件,而fgets和fputs函式以指定的檔案作為讀寫物件。
  5. 在C語言中,路徑本來應該寫成F:\C語言學習程式,但是C語言把"\“作為轉義字元的標誌,所以在寫路徑的時候,往往需要寫成F:\\C語言學習程式,也就是多一個”\"。
  6. 對檔案也可以進行格式化的輸入輸出,所要用到的函式是fprintf和fscanf,他們的呼叫方式為:
               fprintf(檔案指標,格式字串,輸出列表);
               fscanf(檔案指標,格式字串,輸入列表);
    例如:fprintf(fp,"%d,%6.2f",i,f);作用就是將int型變數i和float型變數f的值按照%d和%6.2f的格式輸出到fp指向的檔案中。
    用fprintf和fscanf函式對磁碟檔案讀寫,使用方便,容易理解,但是由於在輸入時要將檔案的ASCII碼轉換為二進位制形式在儲存在記憶體變數中,在輸出時又要將記憶體中的二進位制形式轉換成字元,要花費較多的時間。因此在記憶體與磁碟頻繁交換資料的情況下,最好不用fprintf和fscanf函式,用fread和fwrite函式進行二進位制的讀寫。