關於函式指標:
函式指標的宣告方法為:
函式型別 (標誌符指標變數名) (形參列表);
注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是執行時的...