gpt4 book ai didi

c++ - 初始化中的评估顺序

转载 作者:搜寻专家 更新时间:2023-10-31 00:43:38 24 4
gpt4 key购买 nike

valueA 和 valueB 的以下初始化是否会导致未定义的行为?

int array[2] = {1,2};
int index = 0;
int valueA = array[index++], valueB = array[index++];

c++ 98 和 c++ 11 之间有什么变化吗?

最佳答案

行为定义明确。来自 C++11 草案 n3290 §8 声明符:

Each init-declarator in a declaration is analyzed separately as if it was in a declaration by itself.

所以你的代码等同于:

...
int valueA = array[index++];
int valueB = array[index++];

我没有 C++98 标准,但 ISO/IEC 14882:2003(“C++03”)中有相同的措辞。

关于c++ - 初始化中的评估顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10347298/

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