1. 程式人生 > >C++結構和陣列的差異(基本概念)

C++結構和陣列的差異(基本概念)

為結構編寫函式比為陣列編寫函式要簡單得多。

結構是一個實體,被 看做一個整體,可以將一個結構賦給另一個結構。

函式可以返回結構。陣列名就是陣列第一個元素的地址,而結構名只是結構的名稱,要想獲得結構的地址,必須使用地址運算子&

然而,按值傳遞結構有一個缺點,就是結構非常大的情況下,複製結構將增加記憶體要求,所以更傾向於傳遞地址, 使用指標進行傳遞,C++中按照引用進行傳遞。

舉一個通用的例子,計算時間的。

//本程式是用來示例“結構”的用法
百度收錄批量查詢
//本程式以開車從A點到B點的時間作為變數引數,一個是小時,一個是分鐘,進行操作

#include
struct travel_time
{
int hours;
int mins;
};
const int Mins_per_hr = 60;

travel_time sum(travel_time t1, travel_time t2); //繼續宣告,結構函式宣告
void show_time(travel_time t);

//-----------------------------------【ShowHelpText( )函式】----------------------------------
// 描述:輸出一些幫助資訊
//----------------------------------------------------------------------------------------------
void ShowHelpText()
{
//輸出歡迎資訊和OpenCV版本
printf("\n\n\t\t\t非常感謝您下載瀏覽 C++7.6 程式\n");
printf("\n\n\t\t\t此程式作用:函式和結構\n");
printf("\n\n\t\t\t 作者 learning 日期:20190101");
printf("\n\n ----------------------------------------------------------------------------\n");
}

int main()
{
using namespace std;

ShowHelpText();

travel_time day1 = { 5, 45 };//5小時45分鐘
travel_time day2 = { 4, 55 };//4小時55分鐘

travel_time trip = sum(day1, day2);
cout << "兩天行程所有的時間:";
show_time(trip);

travel_time day3 = { 4, 32 };
cout << "三天的所有時間:";
show_time(sum(trip, day3));

cin.get();
return 0;

}

travel_time sum(travel_time t1, travel_time t2)
{
travel_time total;

total.mins = (t1.mins + t2.mins) % Mins_per_hr;//求餘數
total.hours = (t1.hours + t2.hours) + (t1.mins + t2.mins) / Mins_per_hr;//除數

return total;

}

void show_time(travel_time t)
{
using namespace std;
cout << t.hours << "小時 " << t.mins << “分鐘” << endl;
}
執行結果:

作者:learning_CV
來源:CSDN
原文:https://blog.csdn.net/qq_15698613/article/details/85559900
版權宣告:本文為博主原創文章,轉載請附上博文連結!