gpt4 book ai didi

operators - 在csh中,为什么4 - 3 + 1 == 0?

转载 作者:行者123 更新时间:2023-12-02 22:00:14 25 4
gpt4 key购买 nike

#!/bin/csh

@ cows = 4 - 3 + 1
echo $cows

这个简单的 csh 脚本在运行时会生成“0”作为输出,而我期望的是“2”。

~root: csh simple.1
0

我做了很多查找,我唯一能想到的是“-”被解读为一元否定而不是减法,因此改变了运算符优先级并最终得到 4 - 4 而不是 2 + 1 。 它是否正确?如果是这样,有什么理由吗?如果没有...救命!

编辑:所以它们是右结合的!这些运算符在 C 中不是右结合的,是吗? C-Shell 与 C 有什么不同吗?

最佳答案

虽然您期望运算符保持关联,但它们是 right associative in csh ,因此计算结果为 4-(3+1)

   -
/ \
/ \
4 +
/ \
3 1

关于operators - 在csh中,为什么4 - 3 + 1 == 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1010049/

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