使用structura作为函数中的参数

时间:2014-01-19 13:26:19

标签: c function structure

如何将结构用作函数的参数?我试过这个:

struct
{
    char name[30];
    char section[20];
    float grade;
}student[30];

在读取并将信息存储到结构后,我调用了将数据写入文件的函数:

show(f,n,student); //n is the number of students

这是show函数:

void show(FILE *f,int n, struct elev);
{
...
}

谢谢。

1 个答案:

答案 0 :(得分:2)

你最好命名你的结构:

struct student_st {
  char name[30];
  char section[20];
  float grade;
};

由于您有几个学生,您可能希望将指针传递给它们(的数组):

void show(FILE *f,int n, struct student_st* s) {
  assert (f != NULL);
  assert (s != NULL);
  for (int i=0; i<n; i++) {
    fprintf(f, "name: %s; section: %s; grade: %f\n",
            s->name, s->section, s->grade);
  };
  fflush(f);
}

您将使用它:

#define NBSTUDENTS 30
struct student_st studarr[NBSTUDENTS];
memset (studarr, 0, sizeof(studarr));
read_students (studarr, NBSTUDENTS);
show (stdout, NBSTUDENTS, studarr);

了解arrays are decaying into pointers