首页 > 解决方案 > 这个后增量语句是否会导致未定义的行为?

问题描述

在使用较新版本的 GCC 构建程序时,我发现代码中存在问题。

count[i] = count[i]++;

此代码适用于旧版本的 GCC (2.95),但不适用于较新版本 (4.8)。

所以我怀疑这个陈述会导致未定义的行为,对吗?或者这个问题有更好的术语吗?

标签: c++undefined-behaviorside-effects

解决方案


事实上,这是未定义的行为。

int i = 2;
i = i++; // is i assigned to be 2 or 3?

推荐阅读