Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
5年前关闭。
我已经检查了很多次了...
我想做的是检查bla(int)的返回值是否为负,然后将其保持为x。
但是有时(1)可以完美地工作,有时却不能,但是我无法解释。
Iam用C编写。
导致将
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
5年前关闭。
我已经检查了很多次了...
int bla(int);
if (x = bla(2) < 0) (1)
if ((x = bla(2)) < 0) (2)
我想做的是检查bla(int)的返回值是否为负,然后将其保持为x。
但是有时(1)可以完美地工作,有时却不能,但是我无法解释。
Iam用C编写。
最佳答案
这是因为operator precedence,<
的优先级高于=
:
if (x = bla(2) < 0)
导致将
blah(2) < 0
的值(将是1
或0
)分配给x
。