亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數據結構定義結構體的問題 ?

數據結構定義結構體的問題 ?

ITMISS 2018-11-26 14:10:18
typedef struct LNode {int num,pwd; struct LNode *next;};struct LNode *head,*p,*pt; 這一段程序的意思詳細解釋下
查看完整描述

1 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

typedef struct LNode
{
int num,pwd;
struct LNode *next;
};
這段代碼是結構體的定義部分,該結構體被命名為LNode,它具有2個int類型的變量:num與pwd,還具有一個指針變量,指針變量next所指向的是另一個LNode結構體。

結構體作為一個自定義的數據類型,在創建成功后是僅返回所分配內存的首地址,也就是一個指針,因此你需要使用指針變量來使其持久化。

結構體在默認情況下使用時,需要在結構體名稱前添加struct關鍵字,這樣程序才能知道你是在創建一個結構體的實例,你可以把結構體理解為自定義數據類型,使用方法也類似。
比如
int i,j,k; //聲明3個變量,變量類型為int
struct LNode *i,*j,*k //聲明3個指針變量,分別指向3個結構體,結構體類型為LNode

如果采用你這種定義,在以后,每次想創建一個LNode結構體實例時,都需要加一個struct關鍵字,這很令人反感,所以通常會利用typedef做一些改進:

typedef A B 的作用是將A與B在編程時視為相同的代碼
例如
typedef int CHINA;
那么
int i;
就等同于
CHINA i;

因此將你的代碼更改為:
typedef struct LNode //你的代碼中雖然也用到了typedef關鍵字,但是替代項為空
{ //所以你的代碼中刪掉typedef也沒有任何影響
int num,pwd;
struct LNode *next;
}N;
那最后一行代碼就可以簡化為
N *head,*p,*pt;




查看完整回答
反對 回復 2018-12-14
  • 1 回答
  • 0 關注
  • 796 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號