C-函数返回结构
时间:2020-02-23 14:31:55 来源:igfitidea点击:
在本教程中,我们将学习使用C编程语言从函数返回结构。
在上一教程中,我们学习了如何将结构传递给函数。
如果您想回顾一下,请随时检查。
首先让我们创建一个"学生"结构。
struct student { char firstname[64]; char lastname[64]; char id[64]; int score; };
在本教程中,我们将创建一个函数,该函数将返回" student"结构类型的变量。
函数声明返回结构的语法
以下是将返回结构的函数声明的语法。
returnType functionName(dataType paramName, ...);
例:
struct student getDetail(void);
在上面的示例中,我们有一个名为" getDetail"的函数。
参数列表设置为" void",这意味着此函数不接受任何参数。
该函数的返回类型是" struct student"类型,这意味着它将返回一个" student structure"类型的值。
用C语言编写一个程序,将3个学生的详细信息作为输入,并使用函数打印详细信息
在下面的示例中,我们使用两个函数" getDetail"获取学生详细信息,并使用" displayDetail"显示学生详细信息。
#include <stdio.h> //creating a student structure template struct student { char firstname[64]; char lastname[64]; char id[64]; int score; }; //function declaration struct student getDetail(void); void displayDetail(struct student std); int main(void) { //creating a student structure array variable struct student stdArr[3]; //other variables int i; //taking user input for (i = 0; i < 3; i++) { printf("Enter detail of student #%d\n", (i+1)); stdArr[i] = getDetail(); } //output for (i = 0; i < 3; i++) { printf("\nStudent #%d Detail:\n", (i+1)); displayDetail(stdArr[i]); } return 0; } struct student getDetail(void) { //temp structure variable struct student std; printf("Enter First Name: "); scanf("%s", std.firstname); printf("Enter Last Name: "); scanf("%s", std.lastname); printf("Enter ID: "); scanf("%s", std.id); printf("Enter Score: "); scanf("%d", &std.score); return std; } void displayDetail(struct student std) { printf("Firstname: %s\n", std.firstname); printf("Lastname: %s\n", std.lastname); printf("ID: %s\n", std.id); printf("Score: %d\n", std.score); }
Enter detail of student #1 Enter First Name: Bruce Enter Last Name: Wayne Enter ID: dc-01 Enter Score: 8 Enter detail of student #2 Enter First Name: Peter Enter Last Name: Parker Enter ID: mc-01 Enter Score: 9 Enter detail of student #3 Enter First Name: Tony Enter Last Name: Stark Enter ID: mc-02 Enter Score: 7 Student #1 Detail: Firstname: Bruce Lastname: Wayne ID: dc-01 Score: 8 Student #2 Detail: Firstname: Peter Lastname: Parker ID: mc-01 Score: 9 Student #3 Detail: Firstname: Tony Lastname: Stark ID: mc-02 Score: 7