
有三种方法可以将结构的值从一个函数传递到另一个函数。它们如下所示:
将单个成员作为参数传递给函数。
将整个结构作为参数传递给函数。
将结构的地址作为参数传递给函数。
立即学习“C语言免费学习笔记(深入)”;
现在让我们看看如何将整个结构作为参数传递给函数。
在函数调用中给出结构变量的名称作为参数。
在函数头中将其收集到另一个结构变量中。
缺点是浪费内存,会再次创建整个结构的副本。
以下程序演示了如何将整个结构作为参数传递给函数。
演示
#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中文网其它相关文章!
C语言怎么学习?C语言怎么入门?C语言在哪学?C语言怎么学才快?不用担心,这里为大家提供了C语言速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号