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

typedef int List;

List *list;

1、初始化线性表

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

{

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

}

2、销毁线性表

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

{

free(temp);

扫描二维码关注公众号,回复: 9031182 查看本文章

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]即可。

发布了25 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/modi000/article/details/104231548
今日推荐