i)如果(0)是什么意思?
每次我用它来测试我将得到什么输出,它都会返回错误的部分。
它是否等价于if(0==0),在这种情况下,计算的是真正的部分。
ii)逻辑NOT的关联性!从右到左。
链接:http://www.liv.ac.uk/HPC/HTMLF90Course/HTMLF90CourseNotesnode94.html
逻辑运算符链接中的第二个示例:
但是根据“这两个子表达式包含了一元。不是。首先进行有效评估,因为其中有两个是最左边的,.NOT.A先完成,然后是.NOT.E.”,左边不首先评估,但要评估的第一个应该是右边的那个。。。???

最佳答案

I)在C中,0是假的,其他的都是真的。因此对于if (0),条件将始终为false,并且永远不会执行主体,因为0始终为false。
if (0 == 0)是完全不同的,因为0实际上等于0,表达式0 == 0的计算结果为true,所以执行if的主体。
II)运算符的关联性决定了当同一优先级的多个运算符有歧义时会发生什么情况。例如,在a - b - c中应该发生什么?应该先评估b - c还是a - b?你按什么顺序做是很重要的,因为如果a=1,b=2,c=3,a - (b - c)2,而(a - b) - c是-4。但是因为减法是左联想的,我们可以知道a - b将首先被计算,所以当a=1,b=2,c=3时a - b - c的答案是-4。
尽管如此,我想不出逻辑not运算符的关联性有什么关系,并且当一个运算符被不同优先级的运算符分隔时,它的关联性并不能决定它的执行顺序。

09-27 00:56