C語言程式設計小知識三

2021-09-02 23:31:49 字數 1500 閱讀 1601

關於函式指標:

函式指標的宣告方法為:

函式型別 (標誌符指標變數名) (形參列表);

注1:「函式型別」說明函式的返回型別,「(標誌符指標變數名 )」中的括號不能省,若省略整體則成為乙個函式說明,說明了乙個返回的資料型別是指標的函式,後面的「形參列表」表示指標變數指向的函式所帶的引數列表。例如:

int func(int x); /* 宣告乙個函式 */

void (*f) (int x); /* 宣告乙個函式指標 */

f=func; /* 將func函式的首位址賦給指標f */

賦值時函式func不帶括號,也不帶引數,由於func代表函式的首位址,因此經過賦值以後,指標f就指向函式func(x)的**的首位址。函式名稱也是乙個指標,但是它是死的,但是函式指標卻是活的,可以根據需要讓他指向別的函式。但是要求這種函式的引數型別必須保持一致,因此在工作中,原來想著有很多的冗餘形參,這一點並不能直接刪除,而要保持一致性,這樣在載入的過程中才不會出問題。總之在使用的時候一定要十分謹慎。指向函式的指標變數是不能夠進行++或者–運算的。指標函式是指返回值是指標的函式,即本質是乙個函式。

檔案操作中經常用到的exit(0)需要包含,另外乙個指向檔案的指標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函式進行二進位制的讀寫。

C語言 小知識

1.表示式的求值 初始值 x 1,y 1 z 1 求 x y z 答 從左到右順序依次求值,1 true 注意 因為 操作符的左運算元是true,所以沒有必要求值了.事實上c語言肯定不會繼續求值 有關規則,在按從左到右的順序對乙個邏輯表示式求值的時候,只要知道了它的實際結果,就不會對其餘部分求值.這...

c語言小知識

1 為什麼include標頭檔案後,就可以呼叫檔案中宣告的函式了?標頭檔案中一般只是函式和變數的宣告,編譯器需要知道函式傳遞的是什麼引數,否則呼叫的地方 不知道如何設定暫存器和棧等一些相關資訊。至於函式的位置,由於在其他的編譯單元中,需要鏈結 時才能找到。標頭檔案中包含了函式的宣告,其具體的函式 即...

C語言小知識

nowcoder 牛客網 筆記 一 區域性變數與全域性變數 區域性變數不會影響全域性變數的值,使用完即會釋放 二 變數的傳遞 形參的修改對外部不影響 傳入引用與指標時在函式裡修改的將會傳遞出來 三 c語言與c 中的const void main 在c語言中結果為1,1 在c語言中const是執行時的...