【发布时间】:2020-10-20 14:54:39
【问题描述】:
下面的代码是一个示例,用于演示 C++ 中的一些逻辑
int *p = new int;
*p = 5;
cout << *p << endl;
delete p;
【问题讨论】:
-
没有理由在代码中使用new。听起来你可以使用good C++ book
-
@FrançoisAndrieux:OP 的措辞是正确的,这是
new运算符。正如您所说,这与名为operator new()的 deallocation 函数不同 -
这段代码看起来像是一个如何从全局存储(通常是 heap)分配对象(在本例中为
int)的示例,为它分配一个值,打印出来,然后删除对象(将分配的内存返回到全局存储)。 -
@François - 这是新表达式中关键字的俗语,标准本身也使用timsong-cpp.github.io/cppwp/n4861/expr.new#4.sentence-3 - 如果有记忆,它曾经在古代的规范文本中,但仅笔记现在仍然存在。
-
@FrançoisAndrieux:技术上是正确的。
new是一个运算符,还有new[]、co_await、noexcept、sizeof以及许多未出现在词法分析器的运算符或标点符号列表中的运算符。
标签: c++ pointers new-operator