当只需要结构变量的副本时,函数可以具有按值接受参数的结构参数。
对于要更改结构变量中实际值的函数,需要指针参数。
例如:
#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()将按值获取结构。