struct Stu { int num; }stu1; //Stu和stu1不同意义 void fun1() { stu1.num=1; //stu1已经是结构体的具体对象 struct Stu st2; //Stu仅仅为结构体模板,struct可以省略 st2.num = 2; //初始化 struct Stu* p_stu; //定义一个指向结构体Stu类型的指针 p_stu = &stu1; //将stu1地址赋值给p_stu p_stu->num = 2; //赋值 } typedef struct Man { int year; }man; //Man和man用法和意义完全一致,都表示数据类型 typedef struct Man* Man_P; //Man_P为数据类型,指向结构体struct Man的指针 typedef Man_P Man_pp; //Man_P和Man__pp用法和意义完全相同 Man *man_p1; //man_p1为指向结构体的一个指针 void fun2() { Man man1; //由结构体模板得到一个具体的数据 man1.year = 1; man man2; man2.year = 2; Man_P man_p2; //得到一个指向结构体的指针man_p2 man_p1 = &man1; man_p2 = &man2; }