C中的关系运算符

    写程序时,出现了bug,找了半天,定位到了这儿语句:

    while(read=fread(buffer,1,1024,tempfile)!=0)
    {

    ...

    ...

    }

    调试后发现这里的read老是等于1,即使文件中还有很多字节可读。

    仔细分析了一下,发现是因为忽略了运算符的优先级造成的。

    在这里,赋值运算符=的优先级要小于关系运算符!=,因此,这里是吧逻辑判断fread(buffer,1,1024,tempfile)!=0的结果赋给read,因此read等于1 。

    在C语言中,运算符的优先级顺序为(按从高到低排):

    !(非)

    算术运算符

    关系运算符

    &&和||

    赋值运算符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值