链表中LinkList L与LinkList *L( & * L.elem L->elem)

摘要

LinkList L:L是结构体指针,使用"->"运算符来访问结构体成员;(*L)是结构体,使用"."运算符访问结构体成员

函数是否有&看是否要返回该链表等,若返回加&,否则不加;与L->elem还是L.elem没有关系

取地址符运算符&

取其操作对象的地址

指针运算符*

1.定义变量时,表示将x定义为指针类型变量

int *p:一级指针,表示p所指向地址里存放的是一个int类型的值

int **p:二级指针,表示p所指向地址里存放的是一个指向int类型的指针

2.运算时,其后跟指针表示指针所指变量的值

注意:用于运算时,*后不能跟未初始化的指针(定义时只分配存储指针本身的内存,未分配存储数据的内存)

结构体指针

typedef指Lnode替代struct Lnode,*LinkList替代struct LinkList*(结构体指针,指向整个结构体)

cs 复制代码
typedef struct Lnode{
	ElemType data;
	struct Lnode *next;
}Lnode,*LinkList;//LinkList为指向结构体Lnode的指针

对应的定义链表与结点指针也有两种方式。但L表示整个链表,所以常用LinkList定义;p表示指针,所以常用Lnode定义

cs 复制代码
//定义链表L
LinkList L;
Lnode *L;
//定义结点指针p
LinkList p;
Lnode *p;

L.elem和L->elem

L.elem:通过结构体变量L来访问结构体成员变量elem

L->elem:通过指针变量L指向的结构体成员变量elem,指针通过"->"可直接访问结构体中的成员,不需临时对象

区别:L.elem直接 访问结构体成员,L->elem通过指针访问结构体成员(适用于结构体变量被封装在指针中,通常动态内存分配中使用)

使用L.elem还是L->elem看结构体定义时,定义的为结构体Lnode(L->elem),还是结构体指针(L.elem)*LinkList。

main函数中pop(&s/s,e)?

看pop函数定义,sqstack *s对应&s; sqstack s对应s

相关推荐
zander25817 分钟前
114. 二叉树展开为链表
数据结构·链表·深度优先
小肝一下1 小时前
3. 单链表
c语言·数据结构·c++·算法·leetcode·链表·dijkstra
tachibana21 小时前
hot100 前 K 个高频元素(347)
java·数据结构·算法·leetcode
延凡科技15 小时前
多场景落地复盘:端边云架构无人机智能巡检系统设计与实践
大数据·数据结构·人工智能·科技·架构·无人机·能源
皓月斯语20 小时前
B3842 [GESP202306 三级] 春游 题解
数据结构·c++·算法·题解
春日见21 小时前
算法与数据结构----哈希表
数据结构·人工智能·算法·机器学习·自动驾驶·哈希算法·散列表
萌动的小火苗21 小时前
嵌入式开发中的栈与队列:任务调度为什么依赖数据结构
数据结构·c++·单片机·嵌入式硬件
叩码以求索21 小时前
统计按位或能得到最大值的子集数目(一)
数据结构·算法
tachibana21 天前
hot100 数组中的第K个最大元素(215)
java·数据结构·算法·leetcode
星恒随风1 天前
C++ STL 栈详解:stack 的使用、经典题目与简单模拟实现
开发语言·数据结构·c++·笔记·学习