结构体成员的引用->(箭头)和 .(点)

博客介绍了结构体成员引用的规律,箭头左边须为指针,点号左边须为实体。还探讨了结构体指针引用成员,该成员又是结构体实体时,引用其成员的方法,通过实验验证遵循上述规则,给出代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于结构体成员的引用有这样的规律:

箭头(->):左边必须为指针;(注意其实不是箭头而是两个符号)
点号(.):左边必须为实体。

那么如果一个结构体指针引用一个成员,这个成员又是一个结构体(并且是一个实体),那么如果要引用这个成员的成员要怎么办呢?

经过实验发现,依然遵循上面的规则即:箭头左边必须是指针,实体一定要用点号引用。比如:

一开始都用箭头即c->s1->age

#include "stdio.h"
int main()
{
    struct student{
        int age;
        int class_;
    };
    struct class2{
        struct student s1;
    };
    struct class2 *c;
    struct class2 cc;
    cc.s1.age=9;
    cc.s1.class_=2;
        c=&cc;
        printf("%d",c->s1->age);
        return 0;
    }

出现错误。

如果把代码改为c->s1.age,代码如下:

#include "stdio.h"
int main()
{
    struct student{
        int age;
        int class_;
    };
    struct class2{
        struct student s1;
    };
    struct class2 *c;
    struct class2 cc;
    cc.s1.age=9;
    cc.s1.class_=2;
        c=&cc;
        printf("%d",c->s1.age);
        return 0;
    }

则编译通过得到运行结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值