请教,结构体作为函数形参不支持引用调用吗?
以下是源程序:
/*程序用于测试,目的:交换list结构体的a和b的值*/
struct list
{
int a;
int b;
};
void change(struct list &s)/*此处无法通过,报错*/
{
int temp;
temp=s.a;
s.a=s.b;
s.b=temp;
}
main()
{
struct list h;
h.a=6;h.b=4;
printf("\n%d\t%d",h.a,h.b);
change(h);
printf("\n%d\t%d",h.a,h.b);
}
如果换成指针就可以了:
struct list
{
int a;
int b;
};
void change(struct list* s)
{
int temp;
temp=s->a;
s->a=s->b;
s->b=temp;
}
main()
{
struct list *h;
h->a=6;h->b=4;
printf("\n%d\t%d",h->a,h->b);
change(h);
printf("\n%d\t%d",h->a,h->b);
}