簡體   English   中英

有關C語言中的關系運算符的問題?

[英]Question regarding Relational Operator in C?

我正在學習C語言,並且有以下一些問題(對不起,如果很愚蠢的話)

我正在使用Dev-C ++ 4.9.9.2運行一些示例:

int m=3, n=4, k = 2;
(1) printf("%d", k<m<n); => this one prints 1
(2) printf("%d", k>m>n); => this one prints 0
(3) printf("%d", m<n>k); => this one prints 0

正如書中所說的:“零值代表false,其他任何值代表true”。 因此,為什么語句(3)打印0(false)。 我以為應該是1,或者我在這里想念什么?

有人可以給我一個清晰的解釋嗎?

非常感謝。

根據C的優先級規則, m<n>k被解釋為(m<n)>k (您的其他示例遵循相同的形式)。 m<n為真,因此求值為1。則該語句實際上為1>k ,它為假,因此為0。

暫無
暫無

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

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