gpt4 book ai didi

c++ - 意外的评估顺序(编译器错误?)

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

<分区>

Possible Duplicate:
Undefined Behavior and Sequence Points

我不确定这是否是 gcc 错误,所以我会问:

unsigned int n = 0;
std::cout << n++ << n << ++n;

gcc 给出了极其奇怪的结果:AFAICT 不可能的“122”。因为 << 是左关联的,所以它应该是一样的:

operator<<(operator<<(operator<<(std::cout, n++), n), ++n)

并且因为在评估参数之前和之后都有一个序列点,n 永远不会在两个序列点之间被修改两次(甚至访问)——所以它不应该是未定义的行为,只是未指定评估的顺序。

因此 AFAICT 有效结果将是:111012002101

没有别的

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