[英]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.