c语言--结构体
结构体
结构:是一些值的集合,这些值称为成员变量,可以是不同数据类型的变量。
关键字:struct
结构体的声明:
struct tag { member-list; }variable-list;
例:描述一个学生
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
struct Stu { //struct:结构体关键字 Stu:结构体标签 struct Stu 结构体类型 char name[5]; int age; char tele[20]; char sex[5]; }; //}s1,s2,s3;//三个全局结构体变量。尽量少的使用全局变量 int main() { struct Stu s1; return 0; }
typedef struct Stu { //struct:结构体关键字 Stu:结构体标签 struct Stu 结构体类型 char name[5]; int age; char tele[20]; char sex[5]; }Stu; //}s1,s2,s3;//三个全局结构体变量。尽量少的使用全局变量 int main() { struct Stu s1; Stu s2; return 0; }
typedef:可以将结构体的类型进行修改
第一个下面的s1,s2,s3是成员变量,第二个下面的Stu是类型
结构体变量的定义和初始化
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> struct T { char name[20]; int age; }; struct Stu { char name[20]; int age; char tele[20]; char sex[5]; struct T t; }; int main() { struct Stu s = { "阿跃",20,"19188888888","男",{"李华",18} }; printf("%s\n", s.name); printf("%d\n", s.age); printf("%s\n", s.tele); printf("%s\n", s.sex); printf("%s\n", s.t.name); printf("%d\n", s.t.age);
return 0; }

结构体成员的类型:可以是标量,数组,指针,甚至是其它结构体
结构体变量访问成员结构体变量的成员是通过点操作符(.)访问的,点操作符接受讲个操作符。
结构体传参:
例:
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> struct Stu { char name[20]; int age; }; void Pine(struct Stu p) { printf("%s\n", p.name); printf("%d\n", p.age); } void Pine2(struct Stu* p) { printf("%s\n", p->name); printf("%d\n", p->age); } int main() { struct Stu s = { "阿跃",20 }; Pine(s); Pine2(&s); return 0; }

无论是从时间上还是存储上,传址都比传值好。因为形参是实参的一份临时拷贝。

浙公网安备 33010602011771号