五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

學編程,踩過的C語言指針變量的大坑!你們有遇到過嗎?

2021-04-06 18:36 作者:C語言編程__Plus  | 我要投稿



先看一個初始化帶頭結點單鏈表的例子,LNode是結點變量,LinkList是結點指針變量,等同于LNode*

例1、錯誤的方法:初始化帶頭結點的單鏈表


輸出結果:p.data = 2 鏈表不存在

例2、正確的方法:初始化帶頭結點的單鏈表

輸出結果:

p.data = 2

空表

L->data = 3

為什么第一個 InitList(LinkList L)函數不能初始化單鏈表L呢?不是用的地址傳遞嗎?

答:

問題就在于L = (LinkList)malloc(sizeof(LNode));

這里的 L 是InitList函數的形參,也就是局部變量,函數運行結束后就不存在了。

而main函數中的 L 指針變量,實際上是存儲在全局變量中的,兩個L不是同一個L。

例1中,main函數中的 LinkList L 一開始是指向 NULL的


從InitList(L)執(zhí)行開始,雖然InitList函數中也是對L進行操作,但是此時的L 是InitList函數中的形參L ,之后的也都是對于形參的操作,如下圖


例1 中傳入的是LinkList 變量L,屬于一級指針,不能對實參指針變量 L本身進行操作,來修改實參 L 的值,使得L指向新分配的LNode,所以實參 L 還是指向NULL,因為輸出結果“鏈表不存在”。

例2中,傳入的是LinkList 變量的指針 &L,屬于二級指針,可以對實參指針變量 L 本身進行操作,來修改實參 L 的值,使得L指向新分配的LNode,(*L) = (LinkList)malloc(sizeof(LNode));

作者:猿DUDU,鏈接:https://juejin.cn/post/6947208722871484424

PS:另外對于學習編程或者正在工作的朋友,如果你想更好的提升你的編程能力乃至轉行,彎道超車,快人一步!筆者這里或許可以幫到你~

微信公眾號:C語言編程學習基地

分享(源碼、項目實戰(zhàn)視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!



學編程,踩過的C語言指針變量的大坑!你們有遇到過嗎?的評論 (共 條)

分享到微博請遵守國家法律
盱眙县| 佛学| 锡林郭勒盟| 道真| 临西县| 历史| 淄博市| 秦皇岛市| SHOW| 磐石市| 增城市| 富民县| 铁力市| 三江| 龙泉市| 东乌珠穆沁旗| 涞水县| 北京市| 太和县| 甘谷县| 清苑县| 迭部县| 忻州市| 志丹县| 雷州市| 新沂市| 中山市| 邢台县| 漳平市| 巴林左旗| 元谋县| 鸡泽县| 长宁县| 新营市| 苗栗县| 兴海县| 长葛市| 方正县| 冕宁县| 灌南县| 子长县|