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

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

Sep 06, 2023 am 08:53 AM
c 언어 구조적 매개변수 함수 매개변수 전달

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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

C 언어에서 typedef 구조체 사용법 C 언어에서 typedef 구조체 사용법 May 09, 2024 am 10:15 AM

C 언어에서 typedef 구조체 사용법

C 언어에서 strcpy와 strcat의 차이점 C 언어에서 strcpy와 strcat의 차이점 May 08, 2024 pm 01:03 PM

C 언어에서 strcpy와 strcat의 차이점

C 언어에서 Real은 무엇을 의미합니까? C 언어에서 Real은 무엇을 의미합니까? May 09, 2024 pm 12:06 PM

C 언어에서 Real은 무엇을 의미합니까?

C 언어로 거듭제곱 함수를 구현하는 방법 C 언어로 거듭제곱 함수를 구현하는 방법 May 09, 2024 pm 11:33 PM

C 언어로 거듭제곱 함수를 구현하는 방법

C 언어에서 제한을 사용하는 방법 C 언어에서 제한을 사용하는 방법 May 08, 2024 pm 01:30 PM

C 언어에서 제한을 사용하는 방법

C 언어에서 scanf 오류가 발생하면 어떻게 해야 할까요? C 언어에서 scanf 오류가 발생하면 어떻게 해야 할까요? May 09, 2024 am 11:39 AM

C 언어에서 scanf 오류가 발생하면 어떻게 해야 할까요?

_C 언어의 복잡한 사용법 _C 언어의 복잡한 사용법 May 08, 2024 pm 01:27 PM

_C 언어의 복잡한 사용법

_C언어에서 bool은 무슨 뜻인가요? _C언어에서 bool은 무슨 뜻인가요? May 08, 2024 pm 01:33 PM

_C언어에서 bool은 무슨 뜻인가요?

See all articles