当只需要结构变量的副本时,函数可以具有按值接受参数的结构参数。
对于要更改结构变量中实际值的函数,需要指针参数。
例如:
#include <stdio.h>
#include <string.h>
typedef struct {
int id;
char title[40];
float hours;
} course;
void update_course(course *class);
void display_course(course class);
int main() {
course cs2;
update_course(&cs2);
display_course(cs2);
return 0;
}
void update_course(course *class) {
strcpy(class->title, "C++基础");
class->id = 111;
class->hours = 12.30;
}
void display_course(course class) {
printf("%d\t%s\t%3.2f\n", class.id, class.title, class.hours);
}
如您所见,update_course()将指针作为参数,而display_course()将按值获取结构。