为了使事情更有意义,基本上针对以下两种情况。
我以某种方式想像它们是相似的,首先是右侧。
但是“=”只是通过传递值
“==”返回比较结果“true”,然后转换为1。
所以它们实际上不相似吗?

int hehe = haha = 3;

int hehe = haha == 3;
//-----------------------------------------------
对于以下代码,您能否解释为什么哈哈和嘿嘿都都是3?
我知道分配是正确的关联。所以哈哈首先被分配了3个。
但是为什么(haha = 3)的结果不是1表示操作成功?取而代之的是3正在一直传播到哈哈?这两种类型的术语是什么:3一直传播,而某些操作成功。
int haha;
int hehe = haha = 3;

cout << haha << hehe;

最佳答案


因为那不是C++语言规范说的那样工作。而是,分配的结果是所分配的值。在这种情况下,haha = 3的计算结果为3
在C++中,对于内置运算符,我们从来没有“成功完成此操作”。在某些情况下,当您错误地使用运算符时,编译器将给出错误。但是,如果编译器没有发现错误,则只会假设您知道自己在做什么。

关于c++ - C++分配优先级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/66114111/

10-10 21:23