数据结构预学
(练指针)(用得少)
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结构体嵌套
...