C語言知識複習

2021-09-11 19:08:58 字數 1726 閱讀 3522

printf的格式控制符

%d 十進位制有符號整數

%ld 長整形

%u 十進位制無符號整數

%f 浮點數

%s 字串

%c 單個字元

%p 指標的值

%e 指數形式的浮點數

%x, %x 無符號以十六進製制表示的整數

%0 無符號以八進位制表示的整數

%g 自動選擇合適的表示法

(1). 可以在"%"和字母之間插進數字表示最大場寬,插入- 表示左對齊,預設右對齊

c語言momalloc動態分配的記憶體記得初始化,分配函式不負責初始化的。

free之後的指標必須置為0,不然成為野指標,gg

多維陣列動態分配從低到高,釋放從高到低。

在函式中也可以使用extern

c語言的檔案結構體 file,基本上就是作業系統檔案節點的結構體的封裝。

file * f = fopen(name, mode);

控制讀寫許可權的字串(必須指明)

開啟方式 說明

「r」 以「唯讀」方式開啟檔案。只允許讀取,不允許寫入。檔案必須存在,否則開啟失敗。

「w」 以「寫入」方式開啟檔案。如果檔案不存在,那麼建立乙個新檔案;如果檔案存在,那麼清空檔案內容(相當於刪除原檔案,再建立乙個新檔案)。

「a」 以「追加」方式開啟檔案。如果檔案不存在,那麼建立乙個新檔案;如果檔案存在,那麼將寫入的資料追加到檔案的末尾(檔案原有的內容保留)。

「r+」 以「讀寫」方式開啟檔案。既可以讀取也可以寫入,也就是隨意更新檔案。檔案必須存在,否則開啟失敗。

「w+」 以「寫入/更新」方式開啟檔案,相當於w和r+疊加的效果。既可以讀取也可以寫入,也就是隨意更新檔案。如果檔案不存在,那麼建立乙個新檔案;如果檔案存在,那麼清空檔案內容(相當於刪除原檔案,再建立乙個新檔案)。

「a+」 以「追加/更新」方式開啟檔案,相當於a和r+疊加的效果。既可以讀取也可以寫入,也就是隨意更新檔案。如果檔案不存在,那麼建立乙個新檔案;如果檔案存在,那麼將寫入的資料追加到檔案的末尾(檔案原有的內容保留)。

相應函式:

直接對檔案讀寫字元fgetc§、fputc(c,p)

讀字串函式 fgets、fputs等

char *fgets ( char *str, int n, file *fp );讀取到的字串會在末尾自動新增 『\0』,n 個字元也包括 『\0』。n表示最大值,不一定讀n個,在讀取到 n-1 個字元之前如果出現了換行,或者讀到了檔案末尾,則讀取結束。

還有fread、fwrite、fprintf、fscanf等格式化讀取,fseek定位

開啟檔案之後,利用這些函式即可完成檔案的讀寫。

還有一種特別的方式,重定向io,使用freopen函式,在裡面加上第三個引數stdin或者stdout,即可把對控制台的io轉移到檔案中。

這樣開啟之後關閉檔案不再是關閉檔案指標,直接關閉stdin或者stdout;應該是包含寫的都能用stdout,包含讀的都能用stdin。

字串memset(指標p,值x,長度n);在string.h中的效果是將指標p往後n個長度的記憶體的賦值為值x,內部應該是按位元組賦值的,所以對以char為單位的字串相當於全部賦值為x,如果是整數的話,賦0可以,其它的值就不行了。

字元』\0』的值就是0;

strlen返回值不包括』\0』的長度。

陣列名和指正還是有一定的區別,這裡就是,把陣列名當引數傳遞給指標,如int *a, 此時呼叫sizeof(a),只能的到指標長度,不能的到陣列長度,即memset無效,gg;

C語言知識點複習

最近一直在寫go的 c語言有些生疏,復讀了一遍 高質量c程式設計指南 將其中有些遺忘的知識點總結如下。1 標頭檔案功能 呼叫庫功能 型別安全檢查 2 宣告 int x,y x為int指標,y為int值 3 浮點變數和0比較時應與spsinon比較 4 多重迴圈巢狀時,長的迴圈應放在內層,以減少cpu...

C語言基礎知識複習

整型常量有3種表示方式 十進位制整數。例如,123 456 0。八進位制整數。以0開頭的整數是八進位制數。例如,0123表示8進製數123,等於十進位制數83。十六進製制整數。以0x或0x開頭的整數是十六進製制數。例如,0x123或0xl23表示十六進製制數123,等於十進位制數291。如果在整型常...

C語言知識點複習 一

break 跳出此迴圈 continue 跳出本次迴圈,繼續執行下一次迴圈操作 變數,記憶體,指標之間的關係 陣列,指標,函式 記憶體圖變數本質 儲存資料 陣列下標從0開始 陣列不初始化則陣列的每個元素為隨機數 取位址是用 p 可能是piont的意思 輸出8位16進製制數 要看電腦的匯流排數 陣列的...