数据结构中的.和->的辨析

在数据结构中我们经常会用到p->data,p.data,p->lchild等,这里的.和->分别是什么意思?各自的用法是什么?详解如下:

-> 左边是结构体指针,右边是结构体成员,因此p->next 的含义是p指针指向结构体zhi变量的next数据域(一般该数据域存放后继dao结点的地址)
. 左边是结构体变量名,右边是结构体成员,因此p.next的含义是p结构体变量的next数据域,如:

SqList &L;//这里的L是一个变量
L.data[1]=1;
SqList L;//这里的L是个指针,相当于LNode *L
L->data[1]=1;

小结:指针用->,变量用.

在C语言中,结构体(struct)共用体(union)都是数据组织的复合类型,用于存储不同类型的数据。下面是它们的基本用法区别: **结构体(Struct)**: - 结构体是一种用户自定义的数据类型,它由零个或多个不同类型的数据成员组成,每个成员都有自己的名字数据类型。 - 例如:```c typedef struct { int x; char name[10]; } Student; ``` - 结构体实例可以包含所有成员,每个成员有自己的地址,适用于存储不同类型但相关的数据。 - 它们是值传递,即复制结构体的副本到栈内存。 **共用体(Union)**: - 共用体与结构体类似,也是由零个或多个成员组成,但是所有成员共享同一块内存空间,只有一个成员处于活动状态(active)。 - 当一个成员被声明为当前活跃(active)时,其他成员的值会自动清零。 - 例如:```c typedef union { int i; float f; char ch; } DataUnion; ``` - 因此,你可以根据需要动态改变共用体成员,但任何时候只能有一个成员占用实际存储空间,节省内存。 - 共用体是按引用传递,修改其中一个成员会直接影响到共享内存。 **辨析**: - 结构体用于表示具有独立属性的对象集合,而共用体适合于存储需要切换使用的少量不同数据类型的情况。 - 结构体的实例通常占用连续的内存空间,而共用体的实例仅占用成员中最大类型的大小。 - 如果需要在程序的不同部分复用相同的数据结构,结构体更合适;如果需要存储不同类型但共享存储空间的数据,应选择共用体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值