当前位置:
文档之家› C语言程序设计第54讲 结构体与函数
C语言程序设计第54讲 结构体与函数
二、结构体类型指针作为函数参数
结构体类型指针作为函数参数,实际就是用结构体变量的
地址作为函数的实参,即用指向结构体类型的指针变量作
为函数的形参。
C Programming Language
.
【例2】调用print函数将某个学生的信息输出。
#include <stdio.h> struct student { int num; char name[20]; char sex; float score; }; void print(struct student *s) { printf("No. Name Sex Score\n"); printf("%4d %-10s %3c %8.2f\n",s->num, s->name, s->sex, s->score); } main() { struct student *p; struct student stu= {8001,"zhanglei",'m', 89.5}; p=&stu; 程序运行结果: print(p); No. Name Sex Score } 8001 zhanglei m 89.50
C Programming Language
【例1】调用print函数将某个学生的信息输出。
#include <stdio.h> . struct student 程序运行结果: { No. Name Sex Score int num; 8001 zhanglei m 89.50 char name[20]; char sex; float score; }; void print(struct student s) { printf("No. Name Sex Score\n"); printf("%4d %-10s %3c %8.2f\n",s.num, , s.sex, s.score); } main() { struct student stu={8001,"zhanglei",'m',89.5}; print(stu); } C Programming Language
三、返回结构体类型值的函数
C语言允许结构体类型变量作为整体进行赋值,因此函数
的返回值可以是一个结构体变量或结构体指针。
C Programming Language
【例 . 3】查询某一学生的成绩,并将其具体信息输出。
#include <stdio.h> #define NULL 0 struct student { int num; char name[20]; char sex; float score; }stu[3]= {{8001,"zhanglei",'m',89.5}, {8002,"liling",'f',90}, {8003,"wangping",'m',77.8 } };
.
{
printf("No. Name Sex Score\n"); printf("%4d %-10s %3c %8.2f\n",s->num, s->name, s->sex, s->score);
} else printf("Not found!");
}
程序运行结果: please input No of student:8002 No. Name Sex Score 8002 liling f 90.00 please input No of student:8009 Not found!
小结
(1)结构体变量作为函数参数。
• 用结构体变量的成员作函数参数。
• 用结构体变量作函数参数。
(2)结构体类型指针作为函数参数。 (3)返回结构体类型值的函数。
struct student *search(int m) /*定义查找函数*/ main() . { { struct student *p,*s=NULL; int n; for(p=stu;p<stu+3;p++) struct student *s; if(p->num==m) { s=p; printf("please input No of student:"); break; scanf("%d",&n); } s=search(n); return s; if(s!=NULL) }
学习目标
⑴ 掌握用结构体变量的成员作函数参数的用法。
⑵ 掌握用结构体变量作函数参数的体变量的值传递给另一个函数,有以下两种情况: 1.用结构体变量的成员作函数参数。 与普通变量作为函数参数的使用是一样的,都是“值传
递”。
2.用结构体变量作函数参数。 将结构体变量值的所有数据全部传给形参,所以要求形参 也必须是同类型的结构体变量,采用的仍是“值传递”。