gpt4 book ai didi

c++ - 为什么 "- --"和 "+++"和 操作不同?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:08:15 25 4
gpt4 key购买 nike

递减/递增是一个基本操作,但它在 - --+++ 上的优先级让我感到困惑。我将使用递减来说明:

我这里有一套ab之间不同风格的操作:See it working here

#include <iostream>
using namespace std;
int a=10, b=7;
int main() {
// - and -- opearator // Results: Details:
a = 10, b = 7; cout << a---b << endl; // 3 a post-decrement
a = 10, b = 7; cout << a ---b << endl; // 3 a post-decrement
a = 10, b = 7; cout << a- --b << endl; // 4 b pre-decrement
a = 10, b = 7; cout << a-- -b << endl; // 3 a post-decrement
a = 10, b = 7; cout << a--- b << endl; // 3 a post-decrement
return 0;
}

我知道 4 输出来自递减的 b,即 7 变成了 6 并且从 a 中减去 10

此外,由于其他四个语句,我认为编译器将它们全部视为 --- 但是看,这里出现了 - -- 结果的困惑. See it working here

最佳答案

解析遵循最大咀嚼规则,因此所有语句减去第三个都被解释为(a--)-b 递减a并返回其先前的值(10)。

第三个是a-(--b),它是对b的预减,所以返回新的减后值。

关于c++ - 为什么 "- --"和 "+++"和 操作不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22146797/

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