C語言程式設計小知識三
阿新 • • 發佈:2018-12-18
- 關於函式指標:
函式指標的宣告方法為:
函式型別 (標誌符指標變數名) (形參列表);
注1:“函式型別”說明函式的返回型別,“(標誌符指標變數名 )”中的括號不能省,若省略整體則成為一個函式說明,說明了一個返回的資料型別是指標的函式,後面的“形參列表”表示指標變數指向的函式所帶的引數列表。例如:
int func(int x); /* 宣告一個函式 */
void (*f) (int x); /* 宣告一個函式指標 */
f=func; /* 將func函式的首地址賦給指標f */
賦值時函式func不帶括號,也不帶引數,由於func代表函式的首地址,因此經過賦值以後,指標f就指向函式func(x)的程式碼的首地址。函式名稱也是一個指標,但是它是死的,但是函式指標卻是活的,可以根據需要讓他指向別的函式。但是要求這種函式的引數型別必須保持一致,因此在工作中,原來想著有很多的冗餘形參,這一點並不能直接刪除,而要保持一致性,這樣在載入的過程中才不會出問題。總之在使用的時候一定要十分謹慎。指向函式的指標變數是不能夠進行++或者–運算的。指標函式是指返回值是指標的函式,即本質是一個函式。 - 檔案操作中經常用到的exit(0)需要包含<stdlib.h>,另外一個指向檔案的指標pointer,可以用feof(pointer)來判斷是否遇到輸入檔案的結束標誌,結束時該值為1.
- 關於如何讀寫字串:
函式名 呼叫形式 功能 返回值
fgets fgets(str,n,fp) 從fp指向的檔案讀入一個 讀成功,返回
長度為(n-1)的字串,存放 地址str,失敗則返回NULL
到字元陣列str中
fputs fputs(str,fp) 把str所指向的字串寫到 輸出成功,返回0;
檔案指標變數fp所指向的 否則返回非0值
檔案中。 - fgets和fputs這兩個函式的功能類似於gets和puts函式,只是gets和puts以終端為讀寫物件,而fgets和fputs函式以指定的檔案作為讀寫物件。
- 在C語言中,路徑本來應該寫成F:\C語言學習程式,但是C語言把"\“作為轉義字元的標誌,所以在寫路徑的時候,往往需要寫成F:\\C語言學習程式,也就是多一個”\"。
- 對檔案也可以進行格式化的輸入輸出,所要用到的函式是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函式進行二進位制的讀寫。