结构体作为函数参数和返回值?不懂

luckyhelin 2012-01-07 07:08:54
#include "iostream"
using namespace std;
struct person
{ char name[20];
int age;
float weight;
};
person getperson()//不懂,没见过一个函数前面接结构体名字的
{ person temp;//这里能看懂
cout<<"请输入name,age,weight:";
cin>>temp.name>>temp.age>>temp.weight;
return temp;
}
void print(person temp2)//这里是做参数传递吧
{ cout<<"name:"<<temp2.name<<endl;
cout<<"age:"<<temp2.age<<endl;
cout<<"weight"<<temp2.weight<<endl;
}
void main()
{ person person1=getperson();//不太懂,估计是把函数的返回值赋给了结构体变量
print(person1);
}

person getperson()和person person1=getperson();这2个怎么理解?书上没详解,就举例这个代码,求详解,我该怎么理解
...全文
341 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
面包大师 2012-01-07
  • 打赏
  • 举报
回复
2.可以那么理解吧、、、
luckyhelin 2012-01-07
  • 打赏
  • 举报
回复
谢谢,就是不太习惯一下子变化大了,所以一下子看不出来端倪,呵呵,谢谢了
面包大师 2012-01-07
  • 打赏
  • 举报
回复
1.在你声明函数的时候,你要定义这个函数的类型,然后决定他的返回值,如果你定义的是int类型那么你返回的必须是int型的,或者是能默认强制转换为int型的
luckyhelin 2012-01-07
  • 打赏
  • 举报
回复
你的意思是说?
getperson()
{ person temp;
cout<<"请输入name,age,weight:";
cin>>temp.name>>temp.age>>temp.weight;
return temp;
}
问题1:这个是个函数?然后它是带有返回值的,但是这个函数没有函数类型,得指定返回的类型,于是就在函数名字前面加上一个person,就形成了person getperson;对吧?
问题2:为什么是前面加person而不是struct?,是因为返回的值是属于结构体person的一个结构体变量;对吧?
面包大师 2012-01-07
  • 打赏
  • 举报
回复
LZ多看看数,函数的定义。。。声明之类的
面包大师 2012-01-07
  • 打赏
  • 举报
回复

person person1=getperson();//getperson()这个函数的返回值的类型是person,而结构体是可以用=赋值,
//所以你的理解没错误
面包大师 2012-01-07
  • 打赏
  • 举报
回复

person getperson()//这里的意思是说返回的是个结构体类型

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧