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

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

這里StackNode *s如果換成LinkStack *s 會有什么錯誤嗎?

這里StackNode *s如果換成LinkStack *s 會有什么錯誤嗎?

回首憶惘然 2022-08-05 18:11:44
typedef struct node{datetype date;struct node *next;}StackNode *LinkStack下面是入棧操作:LinkStack Push_LinkStack(LinkStack top,datetype x){StackNode *s;s=malloc(sizeof(StackNode));s->date=x;【s->next=top;top=s;】return top;}我只有一個問題。就是在我加【】的地方,前面s->next=top的意思是把名為LinkStack的指向node結構體的指針top內的地址賦給同樣指向名為StackNode指向node結構體的next指針,這樣top內為空即無地址,接下來又把指向StackNode的s指針內地址賦給top,這樣top就又指向了名為StackNode的node結構體。這樣最后就返回了一個名為StackNode的node結構體,但是函數本身是應該返回名為LinkNode的node結構體的???怎么回事?函數中的返回值跟函數本身應該返回的值是不一致的呢??
查看完整描述

2 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

StackNode 和*LinkStack是同一個東西都是struct node型結構體
typedef struct node
{
datetype date;
struct node *next;
}StackNode ,*LinkStack
上面typedef給struct node又取了兩個名字,StackNode 和*LinkStack,一個人可以有好幾個名字、名字變了人沒變,懂了沒?

查看完整回答
反對 回復 2022-08-08
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

這個是為了增加程序的可讀性,比如LinkStack一看就是一個鏈棧,如果你用struct node定義,別人在看的時候還要返回看一下你這個struct node是什么東西,這個程序比較短,這種好處不是特別明顯,如果你讀一個幾十甚至幾百行的程序就會感覺到這種方法的好處了

查看完整回答
反對 回復 2022-08-08
  • 2 回答
  • 0 關注
  • 548 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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