相关疑难解决方法(0)

为什么v [i] = i ++在C中是未定义的行为?

阅读有关ACCU过载的有趣文章#115:"恶魔可能会飞出你的鼻子"我发现作者说:

在序列点之间,不允许对涉及变量的状态做出任何假设.这也意味着在C中,与大多数其他语言不同,以下表达式会导致未定义的行为

v [i] = i ++;

因为赋值运算符不代表C中的序列点

有人可以解释一下UB的详细推理是什么吗?我认为在两个序列点之间对同一个变量进行多次写操作是个问题,除了v [i]别名的可能性之外我在这里看不到...

c undefined-behavior

2
推荐指数
1
解决办法
411
查看次数

标签 统计

c ×1

undefined-behavior ×1