delete x和delete(x)之间有什么区别吗?

gor*_*vix 8 c++

在C++中,以下命令之间存在任何差异:

delete x;
delete(x);
Run Code Online (Sandbox Code Playgroud)

eml*_*lai 15

不,绝对没有区别.


Jon*_*ter 9

这与以下两者之间的区别相同:

i = i + 1;
i = i + (1);
Run Code Online (Sandbox Code Playgroud)

即没有.delete是一个操作员,而不是一个功能.

  • `sizeof`也是一个运营商.但括号却有所作为.(可以说,我的观点是迂腐的,因为表达式可以用括号括起来,因此`sizeof 4`和`sizeof(4)`都是有效的.但它仍然具有误导性.) (3认同)

YeP*_*IcK 5

区别仅在于x被预编译器扩展时,在这种情况下, 的语义将导致在对计算结果调用 an 之前对表达式(x)进行计算。xoperator delete