自定义函数用引用以及指针

struct study_time

{

int h;

int m;

int s;

};

自定义函数,实现结构体成员信息输入;

(2种参数版本,实现结构体成员信息输入,引用版本和指针版本)

自定义函数,实现结构体成员信息输出;

(3种参数版本:按值传递、地址传递、引用传递)

自定义函数,返回结构体类型,形参为两个结构体数据

study_time get1(study_time s1,study_time s2);

自定义函数,返回结构体类型,形参为两个结构体指针;

study_time get2(study_time *s1,study_time *s2);

自定义函数,返回结构体类型引用,形参为两个结构体类型引用

study_time & get3(study_time &s1,const study_time &s2,const study_time &s3);

返回引用类型形参s1


struct study_time

{
int h;

int m;

int s;

};

//自定义函数,实现结构体成员信息输入;

//(2种参数版本,实现结构体成员信息输入,引用版本和指针版本)

void input(study_time &st,int h,int m,int s)
{
    st.h=h;
    st.m=m;
    st.s=s;
}
void input(study_time *st,int h,int m,int s)
{
    st->h=h;
    st->m=m;
    st->s=s;
}
//自定义函数,实现结构体成员信息输出;

//(3种参数版本:按值传递、地址传递、引用传递)
void output(const study_time *st)
{
    cout<<"st->h:"<<st->h;
    cout<<"st->m:"<<st->m;
    cout<<"st->s:"<<st->s;
}
void output(const study_time &st)
{
    cout<<"st.h:"<<st.h;
    cout<<"st.m:"<<st.m;
    cout<<"st.s:"<<st.s;
}
void output(const study_time st)
{
    cout<<"st.h:"<<st.h;
    cout<<"st.m:"<<st.m;
    cout<<"st.s:"<<st.s;
}

//自定义函数,返回结构体类型,形参为两个结构体数据

study_time get1(study_time s1,study_time s2)
{
    study_time s3;
    s3.h = s1.h + s2.h;
    s3.m = s1.m + s2.m;
    s3.s = s1.s + s2.s;
    return s3;
}

//自定义函数,返回结构体类型,形参为两个结构体指针;

study_time get2(study_time *s1,study_time *s2)
{
    study_time s3;
    s3.h = s1->h + s2->h;
    s3.m = s1->m + s2->m;
    s3.s = s1->s + s2->s;
    return s3;
}

//自定义函数,返回结构体类型引用,形参为两个结构体类型引用

study_time & get3(study_time &s1,const study_time &s2,const study_time &s3)
{
    s1.h = s2.h + s3.h;
    s1.m = s2.m + s3.m;
    s1.s = s2.s + s3.s;
    return s1;
}

//返回引用类型形参s1