无情的双采机 发表于 2019-9-24 10:33:05

数据结构新手 请教一下 用C描述 链表时指针的问题

rt
在描述链式线性表 时 比如 获取元素操作Status GetElem(LinkList L, int i,Elemtype e) 这里LinkList L的L是不带*号的 但在插入操作Status InsertElem(LinkList *L, int i,Elemtype *e)中 L 和 e都是带星号的。
请问是为什么? 在C语言中 指针是指向数组头元素的,为什么有时候要加* 有时候不用呢

无情的双采机 发表于 2019-9-24 10:37:49

再比如 返回元素的指 有的时候用
*e=p->data
还有用
e=p->data
为什么可以用一个指针去接收data的值呢···············
·

想都不要想 发表于 2019-9-24 21:01:18

我的理解是这样子的,首先在函数的形式参数中用*表示传入的是一个地址这样子就可以改变实参的值,那么为什么我们传地址就可以改变实参的值?是因为编译器在函数体中用*的时候就会找对应地址的元素比如*e=2;由于实参在定义的时候就分配了地址,所以他的地址就是不变的。固可以用这个方式在函数体中改变实参的值。
至于你说的在函数声明中用的*就是为了保证他能够改变这个地址指向实际参数的值。如果你只是访问一个元素,那么我们就不用改变他实际的值,所以就不用*{:10_256:}
页: [1]
查看完整版本: 数据结构新手 请教一下 用C描述 链表时指针的问题