Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        5年前关闭。
                                                                                            
                
        
在MSVC 2010 C ++中,我将x和y都显示为true,然后执行x&= y;。导致x为假

我无法在调试器中重复。当我更改为x = x && y;那么结果就是预期的真实。

我应该更改代码还是进行更深入的研究-我正在维护一个针对多个编译器和多个处理器的大型旧系统?

最佳答案

&=是二进制AND。 &&是逻辑AND。

如果两个值都确实是bool,则它们应该工作相同。但是我怀疑他们不是。

关于c++ - 如果x&= y都是c++ bool,则x&= y等于x = x && y ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21941496/

10-10 04:23