【问题标题】:what is raw pointer in c++? How they differ from normal pointer? [duplicate]什么是 C++ 中的原始指针?它们与普通指针有何不同? [复制]
【发布时间】:2014-03-13 07:08:04
【问题描述】:

原始指针有什么特殊含义吗?

普通指针变量和原始指针一样吗?

【问题讨论】:

标签: c++ pointers


【解决方案1】:

原始指针和普通指针完全一样,可以这样写:

type * pointer_name = & variable_name;

从 C++11 开始,我们有了一些特殊的指针,称为“智能指针”。它们被称为“智能”,因为它们知道何时必须删除已使用的内存。当您的程序中没有其他内容使用该内存块时,他们会这样做。 C++11中有3种智能指针:

unique_ptr<typename> pointer_name;
weak_ptr<typename> pointer_name;
shared_ptr<typename> pointer_name;

您可以阅读更多关于使用这些类型的指针here

【讨论】:

  • smart_ptr?从来没有听说过。 unique_ptr呢?
  • 对不起@Thanatos,感谢您的评论。我在想别的东西,结果就是这样。 :))
【解决方案2】:

是的,原始指针是普通指针。

【讨论】:

    【解决方案3】:

    取决于你对“普通”指针的限定,原始指针是这样写的:

    int* rawptr;
    

    对于 c++11,我建议尽可能避免使用它。请改用 std::unique_ptr。

    【讨论】:

    猜你喜欢
    • 2016-09-25
    • 2021-09-10
    • 1970-01-01
    • 2016-10-30
    • 2019-06-30
    • 1970-01-01
    • 2013-06-27
    • 2021-12-04
    • 1970-01-01
    相关资源
    最近更新 更多