以下会出现错误说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;
}