请教下关于线性表中形参和实参的问题(C++),指针和引用?

请教下关于线性表中形参和实参的问题(C++),指针和引用?

    最近在看线性表,期间也看了好些文章,但对线性表中形参和实参用指针和引用有些混淆,请大家看看代码:

代码如下,三个子函数程序是一样的,只是形参类型不同
typedef struct
{
int data[MAX];
int length;
}SqList;//定义线性表

void fun1(SqList *L)
{
int i,j;
for(i=j=0;ilength;i++)
if(L->data[i]>=0)
{
if(i!=j)
L->data[j]=L->data[i];
j++;
}
L->length=j;
}

void fun2(SqList *L)
{
int i,j;
for(i=j=0;ilength;i++)
if(L->data[i]>=0)
{
if(i!=j)
L->data[j]=L->data[i];
j++;
}
L->length=j;
}
void fun3(SqList *&L)
{
int i,j;
for(i=j=0;ilength;i++)
if(L->data[i]>=0)
{
if(i!=j)
L->data[j]=L->data[i];
j++;
}
L->length=j;
}

主函数
int main()
{
int m;
SqList *L;

//方式1
cout<<“执行fun函数”<<endl;
fun1(L);
Display(*&L);

//方式2
cout<<“执行fun函数”<<endl;
fun2( *&L);
Display( *&L);

//方式3
cout<<“执行fun函数”<<endl;
fun3(**&L);
Display(*&L);

按照之前的文章叙述,形参用 *&L,用于实现线性表的长度发生变化,如删除、增加等操作;形参用 *L用于线性表长度不发生变化的操作,如显示线性表的长度等。

但程序测试,这三种都是正确的,下面为三种形参和实参的对应:
1、形参 *L,实参L
2、形参 *L,实参 *&L
3、形参 *&L,实参 *&L

特请教下各位大神,怎么解释这种情况,多谢了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值