> 백엔드 개발 > C++ > C 언어에서 전체 구조를 매개변수로 전달하는 방법은 무엇입니까?

C 언어에서 전체 구조를 매개변수로 전달하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-09-06 08:53:06
앞으로
1173명이 탐색했습니다.

C 언어에서 전체 구조를 매개변수로 전달하는 방법은 무엇입니까?

한 함수에서 다른 함수로 구조체의 값을 전달하는 세 가지 방법이 있습니다.

  • 단일 멤버를 매개변수로 함수에 전달합니다.

  • 전체 구조를 함수에 매개변수로 전달합니다.

  • 구조체의 주소를 함수에 매개변수로 전달합니다.

이제 전체 구조를 매개변수로 함수에 전달하는 방법을 살펴보겠습니다.

  • 함수 호출에서 구조체 변수의 이름을 인수로 지정합니다.

  • 함수 헤더의 다른 구조 변수에 수집하세요.

  • 단점은 메모리를 낭비하고 전체 구조의 복사본을 다시 생성한다는 것입니다.

예제

다음 프로그램은 전체 구조를 매개변수로 함수에 전달하는 방법을 보여줍니다.

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);
}
로그인 후 복사

Output

위 프로그램이 실행되면 다음과 같은 결과가 나옵니다. −

enter the day, month and year:18 JAN 2021
day=18
month=JAN
year=2021
로그인 후 복사

예제 2

또 다른 예를 생각해 보세요. 이 예에서는 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);
}
로그인 후 복사

Output

위 프로그램이 실행되면 다음과 같은 결과가 나옵니다. −

Enter variable 1 = 20
Enter variable 2 = 50
Added value is 70
로그인 후 복사

예제 3

전체 구조를 매개변수로 함수에 전달하는 방법을 보여주는 또 다른 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);
}
로그인 후 복사

Output

위 프로그램이 실행되면 다음과 같은 결과가 나옵니다 −

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿