数据结构预学

(练指针)(用得少)

1.结构体专项训练:

1.1.结构体数组

  参考代码:

#include<stdio.h>
#define ARRYA_SIZE(x) (sizeof(x)/sizeof(x[0]))

//描述学生信息的数据结构
typedef struct student{
        char name[30];
        int age;
        int sex;
}stu_t;
int main(void)
{
        stu_t info[] = {
                {
                        .name = "JACK",
                        .sex = 1,
                        .age = 25       
                },{
                        .age = 18,
                        .sex = 0,
                        .name = "LUXI"  
                }       
        
        };
        for(int i = 0;i < ARRYA_SIZE(info);i ++)
                printf("%s %d %d.\n",info[i].name,info[i].age,info[i].sex);     
                info[0].age++;
                info[1].age++;
        for(int i = 0;i < ARRYA_SIZE(info);i ++)
                printf("%s %d %d.\n",info[i].name,info[i].age,info[i].sex);     
        return 0;       
}

运行结果:

JACK 25 1.
LUXI 18 0.
JACK 26 1.
LUXI 19 0.

1.2.结构体和函数指针组合

  参考代码:

 1 //结构体和函数指针
 2 #include<stdio.h>
 3 
 4 typedef struct student stu_t;
 5 //声明函数指针数据类型
 6 typedef void (*pfunc_t)(stu_t *);
 7 
 8 typedef struct student {
 9         char name[30];
10         int age;
11         int sex;
12         pfunc_t pfunc;//函数指针变量将来指向一个操作函数
13 
14 }stu_t;
15 
16 void show(stu_t *pstu_){
17         printf("%s %d %d.\n",pstu_->name,pstu_->age,pstu_->sex);
18 
19 }
20 
21 int main(void){
22         stu_t student1 = {
23                 .name = "JACK",
24                 .age = 18,
25                 .sex = 1,
26                 .pfunc = show
27         };
28         //调用学生的操作函数show
29         student1.pfunc(&student1);
30 
31         return 0;
32 }

运行结果:

JACK 18 1.

1.3结构体嵌套

...

posted @ 2021-04-27 14:12  盾牌座UY  阅读(70)  评论(0)    收藏  举报