重新學習C語言的getchar 函式以及某些體會

2021-06-25 19:48:31 字數 1111 閱讀 9072

1.在允許使用某種型別變數值的任何場合,都可以使用該型別的更複雜的表示式

2.for迴圈分為三部分,第一部分為初始化,僅在進入迴圈前執行一次。第二部分是控制迴圈的測試或者

條件部分,迴圈控制將對該條件求值,如果結果值為真,則執行一次迴圈體。然後執行第三部分,然後在求條件值,根據值的結果決定是否執行迴圈體。

3.#define 定義符號常量的過程中後邊沒有符號『;』。

4.標準庫提供的標準輸入輸出模型非常簡單。無**本從何處輸入,輸出到何處,其輸入/輸出都是按照字元流的方式處理。文字流是由多行字元構成的字串行,而每行字元則由0個或多個字元組成,行末是乙個換行符。

5.#define getchar() getc(stdin)   說明getchar()函式和getc(stdin)函式的作用是一樣的

#define getc(_stream) (--(_stream)->_cnt>=0?oxff&*(_stream)->_ptr++:_filbuf(_stream))

類似於 if(--(_stream)->_cnt>=0)

return oxff&*(_stream)->_ptr++;

else 

_filbuf(_stream));清空快取

#define stdin (&_iob[0])  stdin的型別就是乙個_iob[0]的位址

_crtimp extern file _iob;

struct _iobuf;

typedef struct _iobuf file;

--(_stream)->_cnt>=0判斷緩衝區是否有資料,有的話減一,並讀取了乙個資料return 0xff&*(stdin)->ptr++,並且指標向前移動乙個位置。

比如執行如下函式體

main()

char c;

c=getchar();

c=getchar();

printf("%c",c);

執行後輸入a然後在單擊enter鍵

輸出回車,原因在於利用了緩衝機制,將a以及回車的對應的字元儲存到緩衝區,然後判斷緩衝區中的_cnt(字元的個數)減以後為1,大於零,所以執行return語句,將緩衝區中的字元輸出,接下來同樣的判斷仍符合要求,接著將緩衝區中的字元賦值給c輸出回車。

重新學習makefile

今天回顧了一下makefile,做下筆記 首先準備幾個簡單的檔案 add.c head.h main.c mul.c sub.c 然後第一版 makefile 然後第二版 gcc c main.c o main.o 然後第三版 makefile 的語法跟shell 很像 第四版 目標 依賴 tab ...

重新學習struts

這就是所謂的一邊工作一邊學習。今天準備把給公司寫個管理頁面,按照之前的路數,寫起來應該挺快,但是不太規範。也就沉下心來學習一下了。第二個學習的是,異常處理。也是在學校的時候,聽老師說過,struts2有提供乙個異常處理機制。平常我們有些異常處理,會在 中寫try catch。public strin...

重新學習C 之 變數

1 變數宣告語法 datatype identifier eg int i 該語句宣告了int變數i。如果在表示式中直接使用此變數會報錯,除非對該變數進行初始化。2 宣告變數的方法 1 int i i 1 先宣告,在賦值 初始化 2 int x 0 宣告並初始化他的值。3 int x 0,y 0 在...