中級C語言重點

2021-06-25 13:37:24 字數 2182 閱讀 8542

一 關於記憶體使用與釋放的問題 

1.記憶體的使用要慎重,在申請之前需要注意,不要忘記嵌入標頭檔案:#include。在使用堆空間時,如使用scanf函式輸入函式,不要忘記堆緩衝區的清除,否則程式容易產生死迴圈,即使用語句:fflush(stdin)。

2.注意區別malloc()與calloc() 的區別 malloc():申請空間,記憶體分配的空間為連續的大小的空間,大小為該函式形參size位元組記憶體單元,記憶體單元沒有型別。 calloc():申請空間為第乙個形參指定的幾個小塊,空間大小一致,並且賦初值了 

3.對於記憶體和指標 記憶體釋放不代表指標消亡,反之同樣。所以,在釋放記憶體的時候,記得將指標置空,否則容易產生野指標。 

二 輸入輸出函式相關問題 

1.對於printf() 函式和scanf()函式原型需要知道: int printf(const char *,…) int scanf (const char *,…) 此處可以知道,輸入輸出函式對字元沒有限制。 

2. scanf()注意事項: scanf()預設不採集空格、回車、跳格這些空白字元,在使用%c時候例外。 %[指定可輸入字符集] %[^指定可輸入字符集] 

3.printf輸出格式注意: %ld ------long %hd-------short %u-------unsigned int %o,%#o------輸出為八進位制 .n------對實數,指定小數點後位數(四捨五入) 

【注】使用printf函式時,格式控制符一定要與變數型別匹配! 單個字元的輸入輸出函式: 

1.單個字元輸出函式putchar

2. 單個字元輸入函式getchar 函式原型:char * gets(char *); int puts(const char *); 

【注】gets對當指定的空間不夠儲存要輸入的字串時沒有任何攔截,推薦使用fgets 函式原型:char *fgets( char *string, int n, file *stream ); 最多可讀入n-1個字元,最後一定是』/0』結尾。 有空閒位置則可包括』/n』 

4. 檔案讀寫 字元讀寫函式 :fgetc和fputc int fgetc( file *stream );--從檔案流中讀乙個「字元」 int fputc( int c, file *stream );--往檔案流中寫乙個「字元」 字串讀寫函式:fgets和fputs char *fgets( char *string, int n, file *stream );--從檔案流讀字串 int fputs( const char *string, file *stream );--寫字串到檔案流 資料塊讀寫函式:fread和fwrite size_t fread( void *buffer, size_t size, size_t count, file *stream );---- 從乙個流中讀取資料塊 size_t fwrite( const void *buffer, size_t size, size_t count, file *stream ); ----寫資料塊內容到流中 格式化讀寫函式:fscanf和fprinf int fprintf( file *stream, const char *format [, argument ]...); ------格式化輸出到乙個流中 int fscanf( file *stream, const char *format [, argument ]... );------- 從乙個流中執行格式化輸入 feof函式功能 int feof( file *stream) -------檔案末尾判斷 ftell函式返 long ftell( file *stream ); ――――――――回檔案位置指示器的當前值 rewind函式 void rewind( file *stream );---------- fp檔案位置指標指向檔案首 fseek函式 int fseek( file *stream, long offset, int origin ); ------把讀寫的位置指示器移到指定的位置。 

【注釋】 檔案開始:seek_set 0   檔案開始:seek_cut 1   檔案開始:seek_end 2 

三 陣列相關問題 

1..陣列是記憶體中連續儲存的有相同型別的資料的有序集合,是一種構造型別 【注釋1】 陣列名代表陣列首位址,一定是個常量,不可以進行運算。c語言規定陣列不能以整體形式參與資料處理,只能逐個使用陣列元素 【注釋2】 對陣列進行間接訪問:首*(首位址 + 偏移) 間址運算子*,用位址訪問元素 【注釋3】 在c語言中根本就沒有多維陣列,即將二維陣列視為乙個特殊的一維陣列,它的每個元素都是個一維陣列。 【注釋4】

C語言重點整理

c語言重點整理 1.sizeof與strlen的區別與聯絡 a sizeof sizeof 是運算子,在標頭檔案中typedef為unsigned int,其值在編譯時即計算好了,引數可以是陣列 指標 型別 物件 函式等。它的功能是 獲得保證能容納實現所建立的最大物件的位元組大小。由於在編譯時計算,...

C語言重點知識歸納

三種迴圈結構 a for while do while 三種。b for迴圈當中必須是兩個分號,千萬不要忘記。c 寫程式的時候一定要注意,迴圈一定要有結束的條件,否則成了死迴圈。d do while 迴圈的最後乙個while 的分號一定不能夠丟。當心上機改錯 do while迴圈是至少執行一次迴圈。...

C語言重點知識複習

1.c語言概述 c語言的特點 c程式的特點 2.基本的資料型別 整數型別 short 2個位元組 int 4個位元組 long 4個位元組 浮點型別 float 4個位元組 double 八個位元組 字元型別 char 1個位元組 0 255 unsigned int a 23 unsigned修飾...