Heim > Backend-Entwicklung > C++ > Wie übergebe ich die gesamte Struktur als Parameter an die Funktion in C-Sprache?

Wie übergebe ich die gesamte Struktur als Parameter an die Funktion in C-Sprache?

WBOY
Freigeben: 2023-09-06 08:53:06
nach vorne
1192 Leute haben es durchsucht

Wie übergebe ich die gesamte Struktur als Parameter an die Funktion in C-Sprache?

Es gibt drei Möglichkeiten, den Wert einer Struktur von einer Funktion an eine andere zu übergeben. Sie sehen so aus:

  • Übergeben Sie ein einzelnes Mitglied als Parameter an eine Funktion.

  • Übergeben Sie die gesamte Struktur als Parameter an die Funktion.

  • Übergeben Sie die Adresse der Struktur als Parameter an die Funktion.

Jetzt wollen wir sehen, wie man die gesamte Struktur als Parameter an eine Funktion übergibt.

  • Geben Sie im Funktionsaufruf den Namen der Strukturvariablen als Argument an.

  • Sammeln Sie es in einer anderen Strukturvariablen im Funktionsheader.

  • Der Nachteil ist, dass dadurch Speicher verschwendet wird und erneut eine Kopie der gesamten Struktur erstellt wird.

Beispiel

Das folgende Programm zeigt, wie eine gesamte Struktur als Parameter an eine Funktion übergeben wird.

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);
}
Nach dem Login kopieren

Ausgabe

Wenn das obige Programm ausgeführt wird, erzeugt es das folgende Ergebnis: -

enter the day, month and year:18 JAN 2021
day=18
month=JAN
year=2021
Nach dem Login kopieren

Beispiel 2

Betrachten Sie ein weiteres Beispiel. In diesem Beispiel wird erklärt, wie ein C-Programm eine gesamte Struktur als a annimmt Parameter, der an die Funktion übergeben wird.

Online-Demonstration

#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);
}
Nach dem Login kopieren

Ausgabe

Wenn das obige Programm ausgeführt wird, erzeugt es das folgende Ergebnis: -

Enter variable 1 = 20
Enter variable 2 = 50
Added value is 70
Nach dem Login kopieren

Beispiel 3

Dies ist ein weiteres C-Programm, das die Methode demonstriert, die gesamte Struktur als Parameter an eine Funktion zu übergeben , wo die Deklaration von Strukturen, die Deklaration und Rückgabe von Funktionen usw. erläutert werden.

Online-Demo

#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);
}
Nach dem Login kopieren

Ausgabe

Wenn das obige Programm ausgeführt wird, erzeugt es die folgenden Ergebnisse: -

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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie übergebe ich die gesamte Struktur als Parameter an die Funktion in C-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage