我想编写一个简单的c代码来创建花园结构,输入详细信息如num_animals,花园类型和花园大小。 但是,我的代码给了我一些垃圾输出。将结构传递给函数c
#include <stdio.h>
#include <string.h>
struct Garden
{
int num_animals;
int size;
char type[10];
};
void Input(struct Garden gardname)
{
printf("\nEnter number of animals\n");
scanf("%d",&gardname.num_animals);
printf("\nEnter size\n");
scanf("%d",&gardname.size);
printf("\nEnter type\n");
scanf("%s",gardname.type);
}
void Output(struct Garden gardname)
{
printf("Num of animals:%d\n",gardname.num_animals);
printf("size:%d\n",gardname.size);
printf("type:%s\n",gardname.type);
}
int main()
{
struct Garden Lumbini;
Input(Lumbini);
Output(Lumbini);
return 0;
}
您需要取消引用该结构的指针:“(* gardname).num_animals'或(更常用)'gardname-> num_animals'。 – pmg
哦,是的,编辑我的答案包括。谢谢! – Fabulous
“您不能将结构传递给函数。” - 这显然是错误的!虽然它可能不是OP想要的,但你可以将'struct'传递给函数或返回结果。而C总是**传递值。没有传递参考。指针是他们自己的权利类型。 – Olaf