Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过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的值(将是10)分配给x

07-24 09:46
查看更多