C++ 删除语法

标签 c++

我遇到了“删除”这个相当不寻常的用法。只是想知道以下行是删除两个指针还是只删除第一个?

delete ptr1, ptr2

最佳答案

这无疑是一个错误。这里的逗号是逗号操作符,不是分隔符。只有第一个指针 ptr1 被删除。

第二个指针,ptr2,只是一个什么都不做的表达式。

delete 操作符的优先级高于 , 操作符,因此表达式被解析为就像它是写的一样:

(delete ptr1) , (ptr2)

不像是写出来的:

delete (ptr1 , ptr2)

如果 , 的优先级高于 delete,则只有 second 指针会被删除。

关于C++ 删除语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3037655/

相关文章:

c++ - 对象数组初始化 (C++)

c++ - 测试 child 的方法是否已重载

c++ - 在 C++ 代码中嵌入文本文件

c++ - 大 O 和树遍历

c++ - 带有 MSG_PEEK 的 C 'recv' 不返回 -1

c++ - 这会导致 C++ 中的内存泄漏吗?

c++ - 高效获取 std::*_heap 的第二个元素

c++ - 将 cuda 上下文传递给工作线程

c++ - 如何根据类型自动定义唯一的对象/符号名称

c++ - 编译器可以假设没有其他线程会修改参数吗?