当前页面 : 首页 > 资讯 > 正文 >

今日热闻!数据结构——基于C/C++ 的传值与传址

来源:哔哩哔哩 时间: 2023-06-04 07:15:03

严版《数据结构》是基于C/C++语言,链表中&L使用也体现了C中的传址与传值。


(资料图片仅供参考)

C中的&a与*a

在swap()函数中,如果要实现a和b的交换,则实参为a与b的地址,即swap(&a,&b),相应地,形参要用指针变量来接收,即int* a , int* b。由指针解引用来操作实参的值。

void swap(int* a, int* b){

int emp = *a;

*a = *b;

*b = emp;

}

在C++中也可以写为swap(a,b)

void swap(int &a, int &b){

int emp = a;

a = b;

b = emp;

}

在严版《数据结构》中用的是两种写法的综合版,不一定能用C或C++运行成功。例如初始化链表InitList(L)

bool InitList(LinkList &L) {

L = (LNode*)malloc(sizeof(LNode));

if(L== NULL){

return false;

}

(L) ->next = NULL;

}

可以用C++运行成功。

而插入节点ListInsert(LinkList &L, int i ,ElemType e)/ListInsert(&L,i,e),出现了两个&,是杂糅写法,实际不能运行。

以上是个人学习心得,如有错误,欢迎指正。

关键词:

为您推荐

-