gpt4 book ai didi

C++ 赋值优先级

转载 作者:行者123 更新时间:2023-12-03 10:04:28 24 4
gpt4 key购买 nike

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

int hehe = haha = 3;

int hehe = haha == 3;
//----------------------------------------------
对于下面的代码,你能解释一下为什么 haha​​ 和 hehe 都是 3 吗?
我知道赋值是右结合的。所以 haha​​ 首先分配了 3。
但是为什么 (haha = 3) 的结果不是 1 表示操作成功了呢?相反,3 一直传播到哈哈?这两种类型的术语是什么:3 一路传播 vs 某些操作成功。
int haha;
int hehe = haha = 3;

cout << haha << hehe;

最佳答案

But why the result of (haha = 3) is not 1 indicating something like the operation is successful?


因为这不是 C++ 语言规范所说的工作方式。相反,分配的结果是分配的值。在这种情况下 haha = 3评估为 3 .
在 C++ 中,我们从来没有为内置运算符提供“此操作成功”。在某些情况下,当您错误地使用运算符时,编译器会报错。但是,如果没有发现错误,编译器只会假设您知道自己在做什么。

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com