繁体   English   中英

为什么运算符在 CShell 中是右结合的,而在 C 中是左结合的?

[英]Why are operators right associative in CShell that are left associative in C?

我之前的问题之后,为什么 CShell 与 C 如此不同?

  • C 中的 4 - 3 + 1 = 2。
  • CShell 中的 4 - 3 + 1 = 0。

有任何想法吗?

通常,传统符号在人类论文中是从左到右(左结合)。 所以对于人类(早在 c、csh 甚至任何计算机概念之前就使用这种表示法):

4 - 3 + 1 = (4 - 3) + 1 = 1 + 1 = 2

为什么? 我想最好的答案是因为。 这与在道路左侧或右侧行驶相同。 只要每个人都使用相同的东西,哪一边真的不重要。

恕我直言,csh 是错误的,因为它违反直觉。 可能这是一个错误(他们想要左关联但编码错误)并成为遗产,因为其他事情已经依赖于此。

不同的人编写产品,他们对如何处理计算有不同的看法。 由于 C Shell 是第二个写的,我认为他们没有遵循名义母语的领导是错误的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM