【C++】函数和结构--struct经典程序--传递结构和返回结构的代码示例(1)

举报
王博Kings 发表于 2020/12/29 23:04:09 2020/12/29
【摘要】 结构和数组的差异(基本概念)  为结构编写函数比为数组编写函数要简单得多。 结构是一个实体,被 看做一个整体,可以将一个结构赋给另一个结构。 函数可以返回结构。数组名就是数组第一个元素的地址,而结构名只是结构的名称,要想获得结构的地址,必须使用地址运算符& 然而,按值传递结构有一个缺点,就是结构非常大的情况下,复制结构将增加内存要求,所以更倾向于传递地址, 使用指针进...

结构和数组的差异(基本概念) 

为结构编写函数比为数组编写函数要简单得多。

结构是一个实体,被 看做一个整体,可以将一个结构赋给另一个结构。

函数可以返回结构。数组名就是数组第一个元素的地址,而结构名只是结构的名称,要想获得结构的地址,必须使用地址运算符&

然而,按值传递结构有一个缺点,就是结构非常大的情况下,复制结构将增加内存要求,所以更倾向于传递地址, 使用指针进行传递,C++中按照引用进行传递。


举一个通用的例子,计算时间的。


  
  1. //本程序是用来示例“结构”的用法
  2. //本程序以开车从A点到B点的时间作为变量参数,一个是小时,一个是分钟,进行操作
  3. #include<iostream>
  4. struct travel_time
  5. {
  6. int hours;
  7. int mins;
  8. };
  9. const int Mins_per_hr = 60;
  10. travel_time sum(travel_time t1, travel_time t2); //继续声明,结构函数声明
  11. void show_time(travel_time t);
  12. //-----------------------------------【ShowHelpText( )函数】----------------------------------
  13. // 描述:输出一些帮助信息
  14. //----------------------------------------------------------------------------------------------
  15. void ShowHelpText()
  16. {
  17. //输出欢迎信息和OpenCV版本
  18. printf("\n\n\t\t\t非常感谢您下载浏览 C++7.6 程序\n");
  19. printf("\n\n\t\t\t此程序作用:函数和结构\n");
  20. printf("\n\n\t\t\t 作者 learning 日期:20190101");
  21. printf("\n\n ----------------------------------------------------------------------------\n");
  22. }
  23. int main()
  24. {
  25. using namespace std;
  26. ShowHelpText();
  27. travel_time day1 = { 5, 45 };//5小时45分钟
  28. travel_time day2 = { 4, 55 };//4小时55分钟
  29. travel_time trip = sum(day1, day2);
  30. cout << "两天行程所有的时间:";
  31. show_time(trip);
  32. travel_time day3 = { 4, 32 };
  33. cout << "三天的所有时间:";
  34. show_time(sum(trip, day3));
  35. cin.get();
  36. return 0;
  37. }
  38. travel_time sum(travel_time t1, travel_time t2)
  39. {
  40. travel_time total;
  41. total.mins = (t1.mins + t2.mins) % Mins_per_hr;//求余数
  42. total.hours = (t1.hours + t2.hours) + (t1.mins + t2.mins) / Mins_per_hr;//除数
  43. return total;
  44. }
  45. void show_time(travel_time t)
  46. {
  47. using namespace std;
  48. cout << t.hours << "小时 " << t.mins << "分钟" << endl;
  49. }

运行结果:

文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。

原文链接:kings.blog.csdn.net/article/details/85559900

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。