gpt4 book ai didi

c - if语句中的多个条件

转载 作者:太空宇宙 更新时间:2023-11-04 05:35:38 27 4
gpt4 key购买 nike

我有一行代码是这样的:

for (ivalue=list[i];i>0 && list[i-1]>ivalue;i--)
...

运行良好。但是,如果我更改第一个条件 i>0 的位置,它会以 Segmentation fault: 11 while running 退出:

for (ivalue=list[i];list[i-1]>ivalue && i>0;i--)
exits with Segmentation fault: 11

为什么结果取决于条件在 && 运算符中的位置?

最佳答案

&&运算符的结合性顺序是从左到右

因此它首先检查 list[i-1]>ivalue,然后再检查 i>0

因此,当 i=0 时,list[i-1] 变为超出范围的 list[-1],因此给出段错误

注意:i>0 永远不会被检查

关于c - if语句中的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38007521/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com