指针*使用情况总结

在C++中,*用于指针,指针是存储变量地址的数据类型。

一.*的多个含义,

(1)声明当前变量为指针变量

(2)作为间接访问符,用于访问指针变量指向的值

示例:

int a = 10;       // 普通变量
int* p = &a;      // 指针 p 存储变量 a 的地址,取地址符 & 用于获取一个变量的地址
int b = *p;       // 通过指针 p 访问 a 的值,b 现在是 10

①在int* p = &a;中,* 是指针声明(int *)的一部分,int*是一个整体,表示当前变量是一个指针变量,可以存储一个int类型变量的地址,【声明之后,单独的p就表示一个指针变量,指向int类型地址】

②在int b = *p;中*用作间接访问符,在这里p指向变量a的地址,那么加上*就表示访问该地址的值,所以*p得到的是a的值

二.指针使用场景:

在开始分析之前,先来解读一下结点结构定义:

/**

 * Definition for singly-linked list.

 * struct ListNode {

 *     int val;//定义节点的值

 *     ListNode *next;//指针指向下一个节点

 *     ListNode(int x) : val(x), next(NULL) {}  //构造函数,初始化节点的值和指针

  • : val(x):初始化成员变量 val,将其设置为传入的参数 x 的值。
  • next(NULL):将成员变量 next 初始化为 NULL,表示该节点在创建时不指向任何其他节点。

 * };

 */

假设我们要创建一个值为 5 的节点,可以这样做:

ListNode node(5);//则传入的值x=5

1.动态内存分配

在运行时动态分配内存时,使用指针变量指向开辟的内存地址

ListNode* node = new ListNode(5); // 动态分配内存并创建一个值为 5 的节点

new  ListNode(5):动态创建一个’ListNode‘对象,其val值等于5,并返回一个指向这个对象的指针。

ListNode* head 声明了一个指向 ListNode 的指针 head,并将 new ListNode(5) 返回的指针赋值给 head

2链表节点连接

ListNode* head = new ListNode(1);
head->next = new ListNode(2); // head 节点的 next 指针指向下一个节点
 

3.传递大型结构体

void processNode(ListNode* node); // 传递指针而不是整个 ListNode 对象
 

4.标识空指针

ListNode* node = nullptr; // 将指针初始化为空
 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半截詩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值