C语言指针与结构体:表达式(*(datap->next)).b与(*datap).c取值咨询
表达式取值解释
1. (*(datap->next)).b 的取值
- 首先,
datap是指向data1的指针,datap->next会直接取data1的next成员——这个成员是指向data2的指针。 - 接着,
*(datap->next)对该指针解引用,得到data2结构体变量本身。 - 最后访问
data2的b成员,代码中已给data2.b赋值为30,所以这个表达式的结果是 30。
注:这个写法等价于更简洁的 datap->next->b,C语言里的->就是专门用来简化指针访问结构体成员的语法。
2. (*datap).c 的取值
datap指向data1,*datap解引用后得到data1变量本身。- 访问它的
c成员,代码中data1.c被赋值为60,所以这个表达式的结果是 60。
注:这个写法等价于更常用的 datap->c。
内容的提问来源于stack exchange,提问作者Kaustav Das
相关产品推荐
相关产品推荐

