#include <stdio.h>
typedef struct student
{
char name;
}stud;
typedef struct teacher
{
stud *stude;
char next;
}tea;
void main()
{
tea T;
tea *t = &T;
stud s;
t->stude = &s;
t->stude->name = 'a';
printf("%c\n",t->stude->name);
}
/*
*总结:
*为什么不加上t->stude = &s;时会出现错误?
*答:因为只要开始使用变量时一定要指明赋初值,即一开始指向哪,没有赋初值的指针是不可以使用
*的,否则会出现严重错误,有可能指向内存的重要区域造成不可预估的错误。
*上述程序加上t->stude = &s;这就声明了指针一开始指向s这个结构体变量,这样就可以正常使用了。
*/
typedef struct student
{
char name;
}stud;
typedef struct teacher
{
stud *stude;
char next;
}tea;
void main()
{
tea T;
tea *t = &T;
stud s;
t->stude = &s;
t->stude->name = 'a';
printf("%c\n",t->stude->name);
}
/*
*总结:
*为什么不加上t->stude = &s;时会出现错误?
*答:因为只要开始使用变量时一定要指明赋初值,即一开始指向哪,没有赋初值的指针是不可以使用
*的,否则会出现严重错误,有可能指向内存的重要区域造成不可预估的错误。
*上述程序加上t->stude = &s;这就声明了指针一开始指向s这个结构体变量,这样就可以正常使用了。
*/