什么是c++中的原始指针?它们与普通指针的区别

what is raw pointer in c++? How they differ from normal pointer?

本文关键字:指针 区别 原始 什么 c++      更新时间:2023-10-16

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

正常指针变量和原始指针是相同的吗?

原始指针与普通指针完全相同,它们可以这样写:

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;

你可以在这里阅读更多关于使用这些类型的指针的信息

对,raw指针就是普通指针。

根据您对"正常"指针的定义,原始指针的写法如下:

int* rawptr;
对于c++11,我建议尽可能避免使用它。使用std::unique_ptr代替。