gpt4 book ai didi

检查 C 'if' 语句中的操作顺序

转载 作者:太空宇宙 更新时间:2023-11-04 00:30:09 25 4
gpt4 key购买 nike

下面的 C 代码片段(其中 ab 都是 double 类型)是我的问题:

if(1.0-a < b && b <= 1.0)

基于Wikipedia中显示的操作顺序我将此理解为评估与以下带括号的代码片段相同:

if( ( (1.0-a) < b ) && ( b <= 1.0) )

这就是我想要的。我只是想仔细检查一下我的理解,即这两个代码片段在 C 语言中的操作顺序确实是等价的。

注意:显然我可以只使用第二个代码片段并明确说明我希望 if() 求值的内容;我问是因为我已经在我的代码中使用了一段时间的第一个片段,我想确保我以前的代码结果没问题。

最佳答案

快速回答:是的,它是等价的。

这意味着两个代码片段的结果是相同的;意思是一样的,但是当你谈论操作顺序时要小心。在我看来,您的问题是关于优先级和关联性。后者告诉您表达式的含义,而不是其操作数的求值顺序。要了解评估顺序,请阅读序列点:Undefined behavior and sequence points

关于检查 C 'if' 语句中的操作顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23620007/

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