C-将结构传递给函数
时间:2020-02-23 14:31:58 来源:igfitidea点击:
在本教程中,我们将学习将结构传递给使用C编程语言的函数。
在"结构和数组"教程中,我们学习了如何创建结构数组。
在本教程中,我们将使用其中一些概念。
因此,请随时回顾上一教程。
让我们开始吧...
要将结构传递给函数,我们必须正确声明函数参数列表。
在下面的示例中,我们将创建一个"学生"结构。
struct student { char firstname[64]; char lastname[64]; char id[64]; int score; };
现在,假设我们要创建一个" displayDetail()"函数,该函数将student结构变量作为参数并打印详细信息。
为此,我们必须首先声明" displayDetail()"函数。
以结构为参数的函数声明的语法
以下是接受结构变量作为参数的函数声明语法。
returnType functionName(struct tagName argName);
例:
void displayDetail(struct student std);
在上面的代码中,我们声明了一个名为" displayDetail"的函数。
该函数的返回类型设置为" void",这意味着该函数将不返回任何值。
在参数列表中,我们具有"结构学生"类型的"标准"。
这意味着std是学生结构的变量。
因此,函数" displayDetail"可以将student结构类型的任何变量作为参数。
将结构变量传递给函数
要将结构变量传递给函数,我们要做的就是写出变量的名称,它将传递结构变量的副本。
在以下示例代码中,我们将类型为" student"结构的" stdArr [i]"变量传递给" displayDetail"函数。
displayDetail(stdArr[i]);
用C编写一个程序,将3名学生的详细信息作为输入,并通过将结构传递给函数来显示结果
#include <stdio.h> //creating a student structure template struct student { char firstname[64]; char lastname[64]; char id[64]; int score; }; //function declaration 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)); printf("Enter First Name: "); scanf("%s", stdArr[i].firstname); printf("Enter Last Name: "); scanf("%s", stdArr[i].lastname); printf("Enter ID: "); scanf("%s", stdArr[i].id); printf("Enter Score: "); scanf("%d", &stdArr[i].score); } //output for (i = 0; i < 3; i++) { printf("\nStudent #%d Detail:\n", (i+1)); displayDetail(stdArr[i]); } return 0; } 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