关于C语言中指针的应用问题,请高手帮帮忙!

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:38:25
这是一个单链表翻转的应用,代码如下

typedef struct tnode
{
int data;
struct tnode* next;
}node;

char relist(node* p)
{
node* p1 = NULL;
node* p2 = NULL;
node* p3 = NULL;

if(NULL == p || NULL == p->next)
return 0;

p1 = p;
p2 = p1->next;

while(p2)
{
p3 = p2->next;
p2->next = p1;
p1 = p2;
p2 = p3;
}
p->next = NULL;
p = p1;

return 0;
}

这个问题是这里的指针p为什么无法实现翻转的功能那?

请高人帮忙看看。

因为P是形参,它的改变,不会使原来的头指针改变

你可以把P返回给头指针

其它的没问题

你这里定义的结构类型是tnode
变量名才是node

char relist(node* p)
{
node* p1 = NULL;
node* p2 = NULL;
node* p3 = NULL;

所以说这些都不正确吧