线性表的基本操作函数中形参为值传递或引用传递分析

typedef int List;

List *list;

1、初始化线性表

initList(List* &temp)//必须为引用,因为,list还未进行初始化,无法进行值传递;

{

temp= (List*)malloc(sizeof(list)*3);

}

2、销毁线性表

destroyList(List * &temp)//为引用,因为,需要  list=NULL, 倘若只是释放指针指向的空间,值传递也可以。

{

free(temp);

temp = NULL;

}

3、返回第n个元素

getElem(List *temp ,int i, list& value)//取值操作的话,只需要对指针变量进行传递即可,传引用可以,但是没必要

{

value = temp[i];

}

4、改变第n个元素

putElem(List* temp, int i,list value)//更改操作的话,只需要对指针变量进行传递即可,传引用可以,但是没必要

{

temp[i] = value;

}

对于3,4操作的总结:进行指针的值传递,也就是进行了  temp = list操作,他们只需要进行值传递就可以操作指向的内存单元了。

这就形如:

int a = 1;

int *b = &a;

func(int *temp)
{

*temp = 2;   //或者形如temp[0]= 2;

}

func(b);// 此时a = 2;

这里用到了进行指针传递的时候,对指针进行 * 或[] 处理,都可以解引用;倘若指针只是指向了一个元素,则理解为数组只有一个元素temp[0]即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值