用C语言编写的部分代码在这里:
typedef struct List {
double v;
struct List *next;
} List;
void deleteList (List **p) {
*p = (*p)->next;
}
我对删除列表功能的工作方式感到困惑。因此,该参数是指向List结构的指针。因此,我们有:
p : pointer_2 --> pointer_1 --> List
所以我有一些问题:
- 那么函数deleteList()中的* p是什么?是指针_1还是其他?
- = p之前的* p是否等于=号之后的* p?
- * p和(* p)之间有区别吗?
说我们有:
... la --> lb --> lc --> ld ....
并说我们要删除lb。从理论上讲,我明白了。您更改la-> next指向lc。但是我对指针业务感到困惑。 deleteList()的参数是什么? 是deleteList(la-> next)吗?或者是其他东西? 然后是真正令人困惑的部分。 * p = ...应该是la-> next,因为这是我们要更改的指针。 但是然后...(* p)->下一步,这难道不是磅吗?但是我们要lc吗?所以看起来 * p在同一行中有不同的含义吗?