按值传递与地址传递
- 按值传递
传递和返回结构
当结构体比较小的时候,按值传递结构比较合理,按值传递的函数例子示例如下:
struct travel_time
{
int hours;
int mins;
}
int main()
{
travel_time t1,t2;
......
travel_time sum(travel_time t1,travel_time t2)
{
travel_time total;
total.mins =(t1.mins+t2.mins);
total.hours=(t1.hours+t2.hours);
return total;
}
......
return 0;
}
- 传递结构的地址
传递一个结构的指针给其他函数
只传递结构的地址而不是整个机构,这样可以节省空间和时间。例子如下:
struct travel_time
{
int hours;
int mins;
}
void show_time(const travel_time *time)
{
cout <<time->hours<<endl;
cout <<time->mins<<endl;
return;
}
int main()
{
travel_time time1={12,34};
travel_time *time2;
time2 = &time1;
show_time(time2);
return 0;
}