a77687789 2015-01-06 20:12 采纳率: 50%
浏览 1813
已采纳

单链表创建打印函数,用完creat再用get(打印函数)

#include
#include
#include
using namespace std;

typedef struct LNode{
int data;
LNode* next;
}LNode,*List;

void creat(LNode* L){
List p ;
int n;
p= (List)malloc(sizeof(LNode));
L = p;
printf("请输入1(添加)或0(不添加):\n");
cin >> n;
while (n)
{
p = (List)malloc(sizeof(LNode));
printf("请输入节点数据:\n");
cin >> p->data;
p->next = p;
printf("请输入1(添加)或0(不添加):\n");
cin >> n;
}

}
void get(LNode* L){
List p = L;
if (p == NULL)exit(0);
while (p->next != NULL)
{
printf("节点数据:%d\n", p->next->data);
p = p->next;
}
}

void main(){
LNode L;
creat(&L);
get (&L);
}

怎么才能改变LNode的L变量,指针不懂,为什么他没有改变啊
  • 写回答

2条回答 默认 最新

  • 91program 博客专家认证 2015-01-07 00:06
    关注

    才能改变LNode的L变量,你是想改变 L 的成员的值,还是改变 L 的地址呢?
    如果是前者,你的代码没有问题,肯定是可以改变的;如果是后者,怎么可能是后者!后者是一个变量,又不是指针,定义后的地址是不能改变的。
    想要改,就必须使用指针。如定义:LNode L = (List)malloc(sizeof(LNode)); 再按 creat(&L); 来调用就可以改变 L 的地址 。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?