C語言的EOF是什么?getchar()!=EOF返回的是什么?


今天打算從新學習下C 結合這個高級語言學習算法等東西 。。第一天。

發現個小問題如標題。是《c語言程序設計(C語言之父)》---網友推薦的書。我看到前面的時候看到這個標題的問題。

測試代碼:

#include <stdio.h>
#include <stdlib.h>
main()
{
int c;
while (getchar()!=(c = EOF)){
putchar(c);
}
}


發現輸出的結果很奇特。

有DEV-C/C++的朋友可以看看。

一開始我真的以為出問題了。

后來我想這應該是個什么東西 ?

EOF到底是什么?

測試發現。EOF什么都不是只是end-of-file(文本結束)如意義一樣。只是個結束。我這樣理解是個 "";

JS中不是經常這樣 var a = "abcdefg".split("") ;console.log(a)--->[a,b,c,d,e,f,g];

那么這個結束不是"" 是什么。是1.因為進入程序默認有了一個結束。這樣就能得到結束。所以我認為,getchar()!=EOF 是肯定會執行至少一次。

所以:我們千萬不要用這方法進行檢索(除非實際應用必須用到)不然死鎖不能跳出就真的悲劇了。程序就一直執行下去。直到強制關閉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM