한 함수에서 다른 함수로 구조체의 값을 전달하는 세 가지 방법이 있습니다.
단일 멤버를 매개변수로 함수에 전달합니다.
전체 구조를 함수에 매개변수로 전달합니다.
구조체의 주소를 함수에 매개변수로 전달합니다.
이제 전체 구조를 매개변수로 함수에 전달하는 방법을 살펴보겠습니다.
함수 호출에서 구조체 변수의 이름을 인수로 지정합니다.
함수 헤더의 다른 구조 변수에 수집하세요.
단점은 메모리를 낭비하고 전체 구조의 복사본을 다시 생성한다는 것입니다.
다음 프로그램은 전체 구조를 매개변수로 함수에 전달하는 방법을 보여줍니다.
Demonstration
#include<stdio.h> struct date{ int day; char month[10]; int year; }; int main(){ struct date d; printf("enter the day,month and year:"); scanf("%d%s%d",&d.day,d.month,&d.year); display(d);//passing entire structure as an argument to function return 0; } void display(struct date d){ printf("day=%d</p><p>",d.day); printf("month=%s</p><p>",d.month); printf("year=%d</p><p>",d.year); }
위 프로그램이 실행되면 다음과 같은 결과가 나옵니다. −
enter the day, month and year:18 JAN 2021 day=18 month=JAN year=2021
또 다른 예를 생각해 보세요. 이 예에서는 C 프로그램이 전체 구조를 하나의 구조로 취하는 방법을 설명합니다. 함수에 전달된 매개변수입니다.
온라인 데모
#include<stdio.h> //Declaring structure// struct add{ int var1; int var2; }a; //Declaring and returning Function// void show(struct add a){ //Declaring sum variable// int sum; //Arithmetic Operation// sum=a.var1+a.var2; //Printing O/p// printf("Added value is %d",sum); } void main(){ //Declaring structure// struct add a; //Reading User I/p// printf("Enter variable 1 = "); scanf("%d",&a.var1); printf("Enter variable 2 = "); scanf("%d",&a.var2); //Calling function// show(a); }
위 프로그램이 실행되면 다음과 같은 결과가 나옵니다. −
Enter variable 1 = 20 Enter variable 2 = 50 Added value is 70
전체 구조를 매개변수로 함수에 전달하는 방법을 보여주는 또 다른 C 프로그램입니다. , 구조체 선언, 함수 선언 및 반환 등에 대해 설명합니다.
온라인 데모
#include<stdio.h> //Declaring structure// struct student{ int s1,s2,s3; }s[5]; //Declaring and returning Function// void addition(struct student s[]){ //Declaring sum variable and For loop variable// int i,sum; //Arithmetic Operation// for(i=1;i<4;i++){ sum=s[i].s1+s[i].s2+s[i].s3; printf("Student %d scored total of %d</p><p>",i,sum); } } void main(){ //Declaring variable for For loop// int i; //Reading User I/p through For loop// for(i=1;i<4;i++){ printf("Enter marks for student %d in subject 1 = ",i); scanf("%d",&s[i].s1); printf("Enter marks for student %d in subject 2 = ",i); scanf("%d",&s[i].s2); printf("Enter marks for student %d in subject 3 = ",i); scanf("%d",&s[i].s3); } //Calling function// addition(s); }
위 프로그램이 실행되면 다음과 같은 결과가 나옵니다 −
Enter marks for student 1 in subject 1 = 25 Enter marks for student 1 in subject 2 = 89 Enter marks for student 1 in subject 3 = 45 Enter marks for student 2 in subject 1 = 12 Enter marks for student 2 in subject 2 = 45 Enter marks for student 2 in subject 3 = 89 Enter marks for student 3 in subject 1 = 12 Enter marks for student 3 in subject 2 = 78 Enter marks for student 3 in subject 3 = 12 Student 1 scored total of 159 Student 2 scored total of 146 Student 3 scored total of 102
위 내용은 C 언어에서 전체 구조를 매개변수로 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!