200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 函数指针数组指针+结构体数组

函数指针数组指针+结构体数组

时间:2021-06-20 09:00:19

相关推荐

函数指针数组指针+结构体数组

/*****************结构体数组计算一个班学生四门课程平均分************************/#include <stdio.h>#include <string.h>char *fun1(char *p){printf("%s\n",p);return p;}char *fun2(char *p){printf("%s\n",p);return p;}char *fun3(char *p){printf("%s\n",p);return p;}typedef struct date{int year;int month;int day;}DATE;typedef struct student{long studentID;char studentName[10];char studentSex;DATE birthday;int score[4];}STUDENT;void function(){printf("call function\n");}int main(){int i,j,sum[30];void(*p)();*(int*)&p = (int) 0x401330;p = function;(*p)();char* (*a[3])(char *p);char* (*(*pf)[3])(char *p);pf = &a;a[0]= fun1;a[1] =fun2;a[2]= fun3;a[2]("func33");a[1]("func22");( *(char*(*)(char *)) 0x00401350)("func1111");( *(char*(*)(char *)) 0x00401366)("func2222");( *(char*(*)(char *)) 0x0040137c)("func3333");printf("pf[0][0] = %p\n",pf[0][0]);printf("pf[0][1] = %p\n",pf[0][1]);printf("pf[0][2] = %p\n",pf[0][2]);printf("pf[0] = %p\n",pf[0]);printf("pf[1] = %p\n",pf[1]);printf("a[1] = %p\n",a[1]);printf("a[0] = %p\n",a[0]);printf("&a[0] = %p\n",&a[0]);printf("a[2] = %p\n",a[2]);pf[0][0]("fun1");pf[0][1]("fun2");pf[0][2]("fun3");(*(*pf+1))("fun1");STUDENT stu[5] ={{1001,"张三",'M',{1994,6,19},{72,32,89,41}},{1002,"赵六",'F',{1998,6,19},{72,56,78,41}},{1003,"王五",'M',{,6,19},{96,52,89,41}},{1004,"李四",'F',{1689,6,19},{56,56,65,41}}};for(i=0;i<4;i++){sum[i] = 0;for(j=0;j<4;j++){sum[i] = sum[i] + stu[i].score[j];}printf("%10ld %8s %3c %6d/%02d/%02d %4d %4d %4d %4d %6.1f\n",stu[i].studentID,stu[i].studentName,stu[i].studentSex,stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],sum[i]/4.0);}return 0;}

输出:

call functionfunc33func22func1111func2222func3333pf[0][0] = 00401350pf[0][1] = 00401366pf[0][2] = 0040137Cpf[0] = 0028FE7Cpf[1] = 0028FE88a[1] = 00401366a[0] = 00401350&a[0] = 0028FE7Ca[2] = 0040137Cfun1fun2fun3fun11001张三 M 1994/06/19 72 32 89 41 58.51002赵六 F 1998/06/19 72 56 78 41 61.81003王五 M /06/19 96 52 89 41 69.51004李四 F 1689/06/19 56 56 65 41 54.5Process returned 0 (0x0) execution time : 0.015 sPress any key to continue.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。