弗原創IT教育中心 542指向结构数组的指针 案例5.5使用指向结构数组的指针来访问结构数组。 #include struct.h" /*定义并初始化一个外部结构数组 student*/ struct std_info student[3]={"0000张三","男",{1980,520}, ("00015"李四";"男",{19808.15} “00012王五”,“女”,{1980,3,10}}}; main i struct std_info *p_std=student; int=0 /打印表头* printf("lNo.囗口口Name口口口囗sex□ Birthday \r")
5.4.2 指向结构数组的指针 指向结构数组的指针 [案例5.5] 使用指向结构数组的指针来访问结构数组。 使用指向结构数组的指针来访问结构数组。 #include"struct.h include"struct.h" /*定义并初始化一个外部结构数组 定义并初始化一个外部结构数组student */ student */ struct std_info student[3]={{"000102"," std_info student[3]={{"000102","张三","男",{1980,5,20}}, ",{1980,5,20}}, {"000105"," {"000105","李四","男",{1980,8,15}}, ",{1980,8,15}}, {“000112”,“王五”,“女”,{1980,3,10}} }; ,{1980,3,10}} }; main() { struct std_info *p_std=student; std_info *p_std=student; int i=0; /*打印表头*/ printf("No. printf("No.□□□□Name□□□□□Sex□Birthday Birthday\n");
弗原創IT教育中心 /*输出结构数组内容* tor(:1<3: i++,p-std++ i printf(%o-7s0-9S00-4s,P_std->no, P_std->name, p_std->sex) printf(0/04d-0/02d-002d\",P-std->birthday year, P-std->birthday. month, p_std->birthday day 如果指针变量p已指向某结构数组,则p+1指向结构数组的下 一个元素,而不是当前元素的下一个成员 另外,如果指针变量p已经指向一个结构变量(或结构数 组),就不能再使之指向结构变量(或结构数组元素)的某一成 员
/*输出结构数组内容 输出结构数组内容 * / for( ; i<3; i++, p_std++) for( ; i<3; i++, p_std++) { printf("% { printf("% -7s% -9s% -4s", p_std 4s", p_std ->no, p_std >no, p_std ->name, p_std >name, p_std ->sex); printf("%4d printf("%4d -%2d -%2d \n", p_std n", p_std ->birthday.year, >birthday.year, p_std ->birthday.month, p_std >birthday.month, p_std ->birthday.day); >birthday.day); } } 如果指针变量 p已指向某结构数组,则 已指向某结构数组,则p+1 指 向结构数组的下 一个元素,而不是当前元素的下一个成员。 一个元素,而不是当前元素的下一个成员。 另外,如果指针变 量 p已经指向一个结构变量(或结构数 已经指向一个结构变量(或结构数 组),就不能再使之指向结构变量(或结构数 组),就不能再使之指向结构变量(或结构数 组 元 素 ) 的 某 一 成 员
543指向结构数据的指针作函数参数 [案例56]用函数调用方式,改写案例451:编写一个专门的 显示函数 . display0,通过主函数调用来实现显示。 #fincludestructh" /*定义并初始化一个外部结构数组 student* struct std_info student[3]={"00002张三","男",{1980,5,0}, "0005四”"男",{1980,815}, “00012;王五”,“女”,{1980,3,10} /*主函数main0*/ main i void display /函数说明*/ int 1=0; /米打印表头 printi("No.囗口囗Name口口口囗 Sexd Birthday\n";
5.4.3 指向结构数据的指针作函数参数 指向结构数据的指针作函数参数 [案例5.6] 用函数调用方式,改写 用函数调用方式,改写[案例4.5]:编写一个专门的 :编写一个专门的 显示函数display() display(),通过主函数调用来实现显示。 通过主函数调用来实现显示。 #include"struct.h include"struct.h" /*定义并初始化一个外部结构数组 定义并初始化一个外部结构数组student */ student */ struct std_info student[3]={{"000102"," std_info student[3]={{"000102","张三","男",{1980,5,20}}, ",{1980,5,20}}, {"000105"," {"000105","李四","男",{1980,8,15}}, ",{1980,8,15}}, {“000112”,“王五”,“女”,{1980,3,10}} }; ,{1980,3,10}} }; /*主函数main()*/ main()*/ main() { void display(); { void display(); /*函数说明*/ int i=0; /*打印表头*/ printf("No. printf("No.□□□□Name□□□□□Sex□Birthday Birthday\n");