簡體   English   中英

EOF練習1-6 K&R C編程語言

[英]EOF exercise 1-6 K&R The C programming language

這可以直接從K&R書中獲取:

!=的優先級高於= ,這意味着在沒有括號的情況下,關系測試!=將在賦值=之前完成。 所以聲明

 c = getchar() != EOF 

相當於

 c = (getchar() != EOF) 

這具有將c設置為0或1的不期望的效果,這取決於getchar的調用是否返回文件末尾。 (更多內容見第2章)

練習1-6。 驗證表達式getchar() != EOF是0還是1。

我無法理解如何進行此練習以及了解塊引用段落的內容。

我知道EOF是int類型的符號常量,通常保持值-1。 由於負值int在進行比較時永遠不能保持與char相同的值,因此需要將其提升為int,然后以某種方式表示文件的結尾。

我也沒有上面指定的括號進行比較!=在分配之前完成但是這實際意味着什么? 這個功能發生了什么? 我還打印了EOF的值,它是-1,當它說驗證它是0還是1時,它是什么意思?

這是說:

c = (getchar() != EOF)

意味着從stdin讀取一個字符,然后將其與EOF進行比較。 如果為真,則結果為1,如果為假則為0。 然后將該結果分配給c 讀取的字符丟失,因此“不良影響”。

它希望你以這種方式自己運行它,看看如何通過發送EOF與任何其他角色來產生0和1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM