pointer on C(c和指標學習筆記)1

2021-08-31 17:21:22 字數 1152 閱讀 9956

函式名: getchar

功 能: 從stdin流中讀字元

用 法: int getchar(void);

註解:getchar有乙個int型的返回值.當程式呼叫getchar時.程式就等著使用者按鍵.使用者輸入的字元被存放在鍵盤緩衝區中.直到使用者按回車為止(回車字元也放在緩衝區中).當使用者鍵入回車之後,getchar才開始從stdin流中每次讀入乙個字元.getchar函式的返回值是使用者輸入的第乙個字元的ascii碼,如出錯返回-1,且將使用者輸入的字元回顯到螢幕.

如使用者在按回車之前輸入了不止乙個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取.也就是說,後續的getchar呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵.

所以下面的程式才會輸出這種情況:

#include#include void main()

}

注意!:輸入中的換行也會被getchar捕獲!所以下圖才會出現兩個換行!

2.eof與'\n'區別

eof :檔案結尾符,ctrl+z

\n :換行符

3.gets與puts!

功能:從stdin流中讀取字串,直至接受到換行符或eof時停止,並將讀取的結果存放在buffer指標所指向的字元陣列中。換行符不作為讀取串的內容,讀取的換行符被轉換為null值,並由此來結束字串。  返回值:讀入成功,返回與引數buffer相同的指標;讀入過程中遇到eof(end-of-file)或發生錯誤,返回null指標(沒有說換行符也返回null,所以只用用ctrl z來結束。)。所以在遇到返回值為null的情況,要用ferror或feof函式檢查是發生錯誤還是遇到eof。  注意:本函式可以無限讀取,不會判斷上限,所以程式設計師應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢位。如果溢位,多出來的字元將被寫入到緩衝區後面的記憶體位置,這將破壞乙個或多個不相關變數的值。這個事實導致gets函式只適用於玩具程式。

4.各種符號:

,換行(\n)就是游標下移一行卻不會移到這一行的開頭,回車(\r)就是回到當前行的開頭卻不向下移一行.

enter鍵按下後會執行\n\r這樣就是我們看到的一般意義的回車了,所以你用16進製制檔案檢視方式看乙個文字,就會在行尾發現"\n\r"

C 小白學指標2

內容依然來自於英文版的 c primer 小弟愚鈍 各路大神多多指教 demo int i 88 int r i 是引用符號 int p 表示p是乙個指標 p i 是address of 取位址 符號 p i 是dereference符號 int r2 p 是宣告的部分 是dereference符號...

和菜鳥一起學c之函式指標

還有sd卡的檔案格式識別還不會,等明天和飛刀一起討論下,基本的android的sd卡的自動掛載已經實現了,可惜只支援fat格式的,ext格式的他不支援,新增了那些其他格式的掛載還是不行,主要是識別還不知道怎麼去實現。好了,既然這麼著,還是把以前看的一些函式指標做個記錄吧。因為linux驅動中很多很多...

指標和指標的指標

int main void 首先在vc6.0裡面新建乙個c 控制台工程,然後鍵入以上 最後按f10進行除錯。在watch視窗中鍵入如上圖所示變數資訊,首先,對於第一行data 5沒問題 然後對data變數採用取位址符 倒數第三行 data 0x0012ff7c,也即data存放的記憶體位址為0x00...