【发布时间】:2014-07-17 11:14:35
【问题描述】:
下面是我从函数返回结构的代码。可能是这个问题非常基本,但我不清楚为什么我在struct emp putinfo (){ 这一行写emp。我不清楚为什么我需要写结构名称?因为在函数内部,我将结构定义为struct emp t;。具体原因是什么?
#include <stdio.h>
struct emp {
int number;
char name [200];
};
void print (struct emp team){
printf ("Details of employee %d %s", team.number, team.name );
}
struct emp putinfo (){
struct emp t;
printf ("Enter number"); scanf ("%d", &t.number);
printf ("Enter name"); scanf ("%s", &t.name);
return t;
}
int main (){
struct emp test;
test = putinfo ();
print (test);
return 0;
}
【问题讨论】:
-
scanf ("%d", &t.name);-->scanf ("%199s", t.name); -
通常你不想将一个结构传递给一个函数,或者从一个函数返回一个结构。相反,您希望将 指针 传递/返回给 struc。否则你最终会到处复制。