程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 數據-單鏈表創建打印函數,用完creat再用get(打印函數)

數據-單鏈表創建打印函數,用完creat再用get(打印函數)

編輯:編程綜合問答
單鏈表創建打印函數,用完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變量,指針不懂,為什麼他沒有改變啊

最佳回答:


才能改變LNode的L變量,你是想改變 L 的成員的值,還是改變 L 的地址呢?
如果是前者,你的代碼沒有問題,肯定是可以改變的;如果是後者,怎麼可能是後者!後者是一個變量,又不是指針,定義後的地址是不能改變的。
想要改,就必須使用指針。如定義:LNode L = (List)malloc(sizeof(LNode)); 再按 creat(&L); 來調用就可以改變 L 的地址 。

91program
a77687789
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved