数据机构中的&号是什么意思啊?

来源:百度知道 编辑:UC知道 时间:2024/05/28 13:00:18
C语言版本的数据机构中,函数名后面括号里的&号是什么意思啊?为什么有的参数又没有&号,有的又有?
比如线性表删除元素操作ListDelete(&L,i,&e) 可不可以都把&号去掉?

函数调用时加& 表示把实际参数的地址传给形式参数
在函数中对形式参数的修改将影响到实际参数

如:
#include <stdio.h>
void fun(int *p)
{
*p = 0;
}

int main()
{
int i = 9;

fun(&i);
//i的值变为0了
printf("%d\n", i);
return 0;
}

但函数定义时加&表示形式参数为实际参数的引用
这点想c++

好像在清华版的数据结构(c语言版)中 用的不是纯c语言 为了函数的书写方便 也吸收了一些c++的语法
注意 书上的很多都是伪码

按题意 删除表的元素 应该是对表本身的修改 想通过函数来实现
应该要加一个&符 来达到修改实际参数的效果

D

这是引用的写法 也可以写成指针的形式ListDelete(*L,i,*e)

不可以,这是引用的意思,因为一般意义上函数对于变量(指针变量除外)的传递是值传递,也即是说在实参传给形参的时候,只是拷贝了一份给传递给这个形参.如果想要让传递的形参带回返回值的话,必须采用引用的形参.也即在形参前加&