数据结构:成员运算符(.)+ 指向运算符(->)

在C和C++中,成员运算符(.)和指向运算符(->)用于访问结构体(或类)的成员。尽管它们的目的相似,但它们的用法根据你是直接操作结构体(或类)的实例,还是通过指向该实例的指针来操作而有所不同。

设 p 为指向链表结点的结构体指针,则* P 表示结点本身,因此可用 p -> data 或(* p ). data 访问* p 这个结点的数据域,二者完全等价。

成员运算符(.)左边是一个普通的结构体变量,而指向运算符(->)左边是一个结构体指针。

通过(* p ). next 可以得到指向下一个结点的指针,因此(*(* p ). next ). data 就是下一个结点中存放的数据,或者直接用 p -> next -> data

成员运算符(.

当你有一个结构体(或类)的实例时,你可以使用.运算符来访问其成员(包括属性、方法等)。语法如下:

结构体类型 实例名;  
实例名.成员名;

或者,对于C++中的类:

ClassName object;  
object.member;


这里,成员名是你想要访问的结构体或类的成员的名称。

指向运算符(->

当你有一个指向结构体(或类)实例的指针时,你需要使用->运算符来访问其成员。这是因为指针本身不直接包含成员的值或地址,而是存储了指向结构体(或类)实例的指针。语法如下:

结构体类型 *指针名 = &实例名;  
指针名->成员名;

或者,对于C++中的类:

ClassName *ptr = &object;  
ptr->member;
这里,指针名是指向结构体(或类)实例的指针,成员名是你想要通过指针访问的成员的名称。

示例

假设我们有以下结构体定义:

typedef struct {  
    int id;  
    char name[50];  
} Person;
我们可以这样使用.和->运算符:
Person person;  
person.id = 1;  
strcpy(person.name, "Alice");  
  
Person *pPerson = &person;  
pPerson->id = 2;  
strcpy(pPerson->name, "Bob");
在上面的例子中,我们首先通过.运算符直接访问person实例的成员。然后,我们定义了一个指向person的指针pPerson,并通过->运算符访问相同的成员。两种方式都能达到相同的目的,但使用哪种方式取决于你是否是通过指针来访问结构体(或类)的成员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

pranaa

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

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

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

打赏作者

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

抵扣说明:

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

余额充值