为什么"f = f ++"在c中不安全?

9 c types

我从这个网站上读到了"副作用" :

但仍然不明白为什么f = f++认为不安全?

有人可以解释一下吗?

jos*_*rry 16

问题是序列点.此参数中有两个操作,没有序列点,因此对于语句没有已定义的顺序,是首先发生的赋值还是增量?

没有什么说它不安全,它只是未定义,这意味着不同的实现可能会有不同的结果,或者它可能会格式化您的硬盘...

  • 我想大多数人会考虑将驱动器格式化为`f = f ++`的不安全后果.虽然我认为大多数人说'不安全'并不意味着它可能会破坏某些东西,但你不能依赖它会做什么. (2认同)