老师,请教下箭头运算符的问题

来源:8-1 结构体【内存占用分析】

三尺357159

2024-03-03

我看使用指针指向结构体的时候
struct Person *person_ptr = &person;
图片描述
当我们使用person_ptr->name的时候,其中的->运算符是不是相当于已经做了取地址的操作了,
就是 * person_ptr,即 *&person 这一步操作了,因为直接使用person_ptr变量的话,仅仅是拿出了里面存放的0x1234。如果->包含了间接使用地址的操作的话,那么后面就解释得通了,就好像 ->等同于:
person_ptr->name = *person_ptr.name = * 0x1234.name = * &person.name = person.name
(上面是我类比的)

写回答

2回答

bennyhuo

2024-03-04

-> 运算符应该是会解引用,person_ptr本来就是指针,*person_ptr是解引用,person_ptr->name 其实就是 (*person_ptr).name
0
1
三尺357159
非常感谢!
2024-03-04
共1条回复

bennyhuo

2024-03-04

是的,可以这么理解
0
0

C语言系统化精讲 重塑编程思想 打造坚实的开发基础

如果通向大牛的道路有捷径,那就是先学好C语言

2208 学习 · 853 问题

查看课程