关于结构体中的结构体想用指针调用出现的问题(未解决)

以下会出现错误说s不是class1的成员变量:‘s’ : is not a member of ‘class1’

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

这样会出现说s没有定义:‘s’ : undeclared identifier

然后如果写两个定义的话编译不会出错,但运行结果不会输出,如下:

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

我知道如下方法可行可以输出9,但我就是想用结构指针的办法,有没有什么可行的方法?未解决。

#include "stdio.h"
int main()
{
    struct student{
        int age;
        int stu_class;
    };
    struct class1{
        struct student s1;
    };
    struct class1 *c;
    struct class1 cc;
    cc.s1.age=9;
    cc.s1.stu_class=2;
    c=&cc;
    printf("%d",c->s1.age);
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值