结构体: 是开发者自己定义的一种数据类型。
结构体的组成:
typedef struct 结构体变量名/old name{
成员变量类型1 成员变量名1;
成员变量类型2 成员变量名2; // 成员之间用 ;隔开
…. ….
}new name;
例如:struct student {
char name[20];
long number;
char gender;
int age;
};
结构体的赋值:
* struct 结构体变量名 自定义名称 = {成员变量名1 ….};
* 赋值的顺序一定要和结构体成员定义的顺序保持一致;
例如:
struct student stu1= {“werg”,108,’m’,200};
struct student stu2 = {“lisi”,103,’m’,500};
struct + 结构体变量名 : 这两者放一起才是一个数据类型名(int/float)
给一个结构体起别名:需要用大驼峰命名法(首字母大写)
起别名的格式:
1.先定义结构体,在起别名
2.定义结构体的同时,这时就不能呢定义结构体变量了
方式一: 如上例中的褐色字体
方式二: typedef struct oldname newname;
// 访问结构体数组中的元素,也是通过数组的下标来访问;
如何访问结构体变量:
* 先访问结构体变量的成员
* 输出结构体变量stu中的name : stu.name
* 使用点语法访问的结构体变量的成员,点可以理解为:“xx的”的意思
* 结构体变量名 . 成员变量名 就可以访问成员变量名里的值
// 将学生stu1的名字改为“tingfeng”:
注意: 由于姓名是字符串,不能直接赋值
strcpy(stu1.name,”tingfeng”);
结构体变量可以直接给另外一个结构体变量赋值
结构体变量里边的数组可以为另一个结构体变量直接赋值
stu 1 = stu 2;
结构体的输出:
printf(“%s\n”,stu1.name); // 输出stu1中的姓名
printf(“%d\n”,stu1.age); // 输出stu1中的年龄
printf(“%ld\n”,stu1.number);// 学号
printf(“%c\n”,stu1.gender); // 性别