【发布时间】:2019-05-21 07:22:54
【问题描述】:
我在测试中被问到以下关于评估 ++*ptr++ 的问题(我不想自己写。测试问了它。我仍然知道它的错误代码)
int Ar[ ] = { 6 , 3 , 8 , 10 , 4 , 6 , 7} ;
int *Ptr = Ar ;
cout<<++*Ptr++ ;
但是,我怀疑这是未定义的行为,因为它可以是 (++*ptr)++ 或 ++(*ptr++)。
是吗?我对文档不太熟悉,所以我找不到任何东西。
【问题讨论】:
-
C++ 对你做了什么让你觉得有必要这样做?
-
当询问“未定义的行为”时,最好的方法是先查看文档。
-
@soham:一般来说,询问多个
++实例的复杂交互等代表永远不应该编写的代码,会招来反对票。或者换一种说法,如果你要问它是否定义明确,不要这样写。 -
@soham 为什么你认为它是未定义的?如果您在问题中解释这一点,我认为您会得到更少的反对票。
-
@MatteoItalia 这是在测试中被问到的,先生……我不想自己写
标签: c++ language-lawyer