掘金 人工智能 18小时前
c++——指针(介绍)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了C++中指针的基本概念、核心操作以及如何安全地使用指针。文章涵盖了指针的寻址与取值操作,通过`&`获取地址,`*`声明和解引用指针。强调了指针初始化为`nullptr`的重要性,以避免野指针,并提供了检查空指针的示例。此外,还介绍了多级指针(二级、三级指针)的定义和用法,以及`void`指针作为通用指针的特性,包括其指向不同类型数据的能力以及解引用前的类型转换要求。最后,简要提及了`void`作为函数返回类型的含义。

⭐ 指针的核心概念是存储内存地址。`&`(取址运算符)用于获取变量的内存地址,而`*`(解引用运算符)则用于访问指针所指向内存地址中的值。声明指针变量时,`*`也用于标识其类型。

🔑 为了避免访问无效内存区域(野指针),将指针初始化为`nullptr`是一种重要的编程习惯。在使用指针前,应进行`nullptr`检查,确保指针指向有效的内存地址,从而提高程序的健壮性。

📚 多级指针扩展了指针的应用范围,例如二级指针`int **pp2 = &pp;`存储的是一级指针`pp`的地址,可以实现更复杂的间接访问。

🌐 `void`指针是一种通用的指针类型,可以指向任何数据类型的内存地址。但由于其不携带类型信息,在使用前必须将其强制转换为具体的指针类型,才能进行解引用操作。

一、指针 (Pointer)

1. 指针的概念

2. 指针的基本操作:寻址和取值

3. 指针的初始化和空指针:避免野指针

nullptr 是空指针常量,表示指针不指向任何有效的内存地址。

将指针初始化为 nullptr 是一种良好的编程习惯。

int *pp = nullptr;` 明确地表示指针 `pp` 当前没有指向任何有效的 `int` 型变量。

在使用指针之前,检查指针是否为 nullptr,以避免访问无效内存。

int *ptr = get_some_pointer(); // 假设 get_some_pointer 可能返回 nullptrif (ptr != nullptr) {    // 指针有效,可以安全使用    std::cout << *ptr << std::endl;} else {    // 指针为空,处理错误情况    std::cout << "指针为空!" << std::endl;}

4. 多级指针:指向指针的指针

5. void 指针:通用的指针

int n = 10;float f = 3.14;void *vp;vp = &n;  // void 指针可以指向 intvp = &f;  // void 指针也可以指向 float

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

C++指针 内存地址 野指针 void指针
相关文章