gpt4 book ai didi

c++ - 前/后增量说明

转载 作者:太空狗 更新时间:2023-10-29 23:25:45 26 4
gpt4 key购买 nike

请放轻松,不要对我开枪,因为我还是新手。

当我运行这段代码时,我完全糊涂了,终生无法弄清楚为什么:

int y = 9;
cout << "++y = " << ++y << "\n--y = " << --y << "\ny++ = " << y++ << "\ny-- = " << y-- << "\n";
cout << "y = " << y << "\n";

我得到以下结果:

y = 9
++y = 9
--y = 9
y++ = 8
y-- = 9
y = 9

而不是这些结果:

y = 9
++y = 10
--y = 9
y++ = 9
y-- = 10
y = 9

我从这段代码中得到:

int y = 9;
cout << "y = " << y << "\n";
cout << "++y = " << ++y << "\n";
cout << "--y = " << --y << "\n";
cout << "y++ = " << y++ << "\n";
cout << "y-- = " << y-- << "\n";
cout << "y = " << y << "\n";

谁能尽可能用简单的语言解释第一个代码中发生了什么,以便它以这种方式打印结果?

最佳答案

一个简单的规则是,您不应在任何给定语句中多次递增同一位置。所以你不应该编码 cout << y++ << ++y << endl;其中包含两个增量 y (假设一个 int y; 声明)。

有关详细信息,请阅读C++ 标准中的序列点未定义行为

有很多相关的问题。深入了解它们!

关于c++ - 前/后增量说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932526/

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