C语言给了自定义类型的能力,自定义类型中有一种叫:结构体struct。结构体是把一些单一类型组合在一起的做法。以下先演示结构体如何使用:这里我们定义了stu的结构体,,包含name、age、sex、tele四个成员。然后我们在main函数中定义了一个stu类型的变量s,并初始化它的成员。最后,我们使用printf函数打印出所有成员的值。
- #include
- struct stu //定义一个结构体
- { // 结构体的成员变量
- //例如要描述一个学生的姓名、年龄、性别、电话号码
- char name[20]; //这一部分是类型,类型不占据内存空间
- int age; //例如int a,int 是类型 不占据内存空间,拿类型创建了变量a,a向内存申请了空间
- char sex[10]; //所以struct stu 是类型
- char tele[12];
- }
-
- int main()
- { // 定义一个结构体变量s,s向内存申请了空间,是实际占据空间的
- //拿起这个类型 创建了一个变量 并且同时给他一个值 叫做初始化.
- struct stu s={"wangqiang",20,"nan","15585649856"}
-
- printf("%s %d %s %d\n",s.nanme,s.age,s.sex,s.tele);
-
- // 结构体对象 . 成员名 访问结构体里的成员
-
- return 0;
- }
基于上述,引出打印结构体成员的另外俩种方式,代码如下:
- #include
- struct Stu
- {
- //定义一个人 名字年龄性别电话
- char name[20];
- int age;
- char sex[10];
- char tele[12];
- };
-
- void print(struct Stu* ps)
- {
- printf("%s %d %s %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);
- // (*ps)*是解引用操作符,通过ps中存放的地址,找到ps所指向的对象,*ps就是s
- printf("%s %d %s %s\n", ps->name, ps->age, ps->sex, ps->tele);
- //结构体指针变量->成员名 ,也可以打印出相同的结果。
- }
-
- int main()
- {
- struct Stu s = { "Baobeizaiganma",20,"nan","15577885544"};
- printf("%s %d %s %s\n",s.name,s.age,s.sex,s.tele);
- print(&s);
- return 0;
- }