#include <stdio.h> int main() { /*************************************************** *定义结构体变量的3种方式 * 1、先定义类型,再定义变量(分开定义) * struct Student * { * int age; * }; * struct Student stu; * 2、 定义类型的同时定义变量(stu) * struct Student * { * int age; * } stu; * 后面还可以通过结构体类型定义其他的结构体变量 * struct Student stu2; * 3、 定义类型的同时定义变量(省略了类型名称) * struct * { * int age; * } stu; * 该类型只能使用一次,后面不能再定义该类型的变量了。 * * 结构体类型的作用域 * 1、定义在函数外面:全局有效(从定义类型的那行开始,一直到文件结尾) * 2、定义在函数(代码块)内部:局部有效(从定义类型的那行开始,一直到代码块结束) * 注意:结构体类型不能重复定义 * 结构体可以利用=进行赋值。 * ****************************************************/ struct Person { char *name; }; struct Person p = {"zhangsan"}; printf("Person %s ", p.name); struct Student { int no; char *name; }stu; stu.no = 1; stu.name = "lisi"; printf("Person no = %d, name = %s ", stu.no, stu.name); struct { char *name; } person; person.name = "wangwu"; printf("name = %s ", person.name); struct Person p1 = {"xiaohua"}; struct Person p2; p2 = p1; printf(" p1 name = %s ", p1.name); printf(" p2 name = %s ", p2.name); return 0; }
Person zhangsan Person no = 1, name = lisi name = wangwu p1 name = xiaohua p2 name = xiaohua