我遇到了“删除”这个相当不寻常的用法。只是想知道以下行是删除两个指针还是只删除第一个?
delete ptr1, ptr2
最佳答案
这无疑是一个错误。这里的逗号是逗号操作符,不是分隔符。只有第一个指针 ptr1
被删除。
第二个指针,ptr2
,只是一个什么都不做的表达式。
delete
操作符的优先级高于 ,
操作符,因此表达式被解析为就像它是写的一样:
(delete ptr1) , (ptr2)
不像是写出来的:
delete (ptr1 , ptr2)
如果 ,
的优先级高于 delete
,则只有 second 指针会被删除。
关于C++ 删除语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3037655/