今日热闻!数据结构——基于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),出现了两个&,是杂糅写法,实际不能运行。
以上是个人学习心得,如有错误,欢迎指正。
关键词:
为您推荐
-
原标题:发现最美你评我论|陕西延川:创新传统村落保护模式让乡愁有“乡”可寻央视网消息(记者王甲铸)当
23-06-03