c语言编程最后j和k,C语言学习笔记:I<J<K运算,ijk,的,操作

本文通过示例对比了C语言与Python中比较运算符的不同行为,特别是针对i&lt;j&lt;k这类表达式的解释差异。在C语言中,此类表达式采用左结合性,导致其含义可能不符合预期;而在Python中,则直接支持链式比较。

表达式

i < j < k

在C语言中是合法的,但是它不是你所期望的意思。因为

运算符是左结合的, 所以这个表达式等价于

(i < j) < k

.

换句话说, 表达式首先检测l.是否小千j, 然后用比较后产生的结果1或0来和K进行比较。 表达式不测试j是否位于i和K之间,正确的表达式应该是

i < j && j < k

.

#include

#include

int main(void)

{

int i = 2;

int j = 1;

int k = 3;

if(i < j < k){ // 这里输出第一行,但是这是错的

printf("i小于j,j小于k,j在i和k中间\r\n");

}

else{

printf("j不在i和k中间\r\n");

}

if(i < j && j < k){ // 这里输出第二行,这样处理是对的

printf("i小于j,j小于k,j在i和k中间\r\n");

}

else{

printf("j不在i和k中间\r\n");

}

system("pause");

}

Python

中没有这样的问题,如下面程序:

#!/usr/bin/python

# coding=utf-8

i = 2;

j = 1;

k = 3;

if i < j < k: # 这里输出第二行,可见Python进行了特殊处理

print("i小于j,j小于k,j在i和k中间\r\n");

else:

print("j不在i和k中间\r\n");

if i < j and j < k: # 这里输出第二行,这样处理是对的

print("i小于j,j小于k,j在i和k中间\r\n");

else:

print("j不在i和k中间\r\n");

输出的结果为:

j不在i和k中间

j不在i和k中间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值