C C 中結構體 struct 知識點強化 三

2021-05-21 14:22:30 字數 1057 閱讀 5529

我們以上面的程式為基礎,但為了我們方便學習刪除我們休整結構體為

struct test

; number為唯一的編號每乙個節點的。

刪除的我就不多說了,裡面重要部分有註解。

特別注意deletel函式的引數意義,指標的引用在這裡很重要,如果只是指標,或者只是應用都是不行的,為什麼仔細思考,很多知名的教材在這一問題上都很模糊,而且很多書還有錯誤,程式不錯,但思路是錯的,我這裡特別不說,請大家仔細閱讀程式,如果還是有問題,可以回此帖,我會回答的。

完整**如下:

#include  

using

namespace std; 

struct test 

;  test *head;//建立乙個全域性的引導進入鍊錶的指標 

test *create() 

else

le=ls;//設定鏈尾指標為當前迴圈中的節點指標,用於下一次進入迴圈的時候把上一次的節點的next指向上一次迴圈結束前動態建立的堆記憶體位址 

ls=new test;//為下乙個節點在堆記憶體中動態開闢空間 

cin>>ls->number>>ls->socre; 

}  le->next=null;//把鏈尾指標的next設定為空,因為不管如何迴圈總是要結束的,設定為空才能夠在迴圈顯鍊錶的時候不至於死迴圈 

delete ls;//當結束的時候最後乙個動態開闢的記憶體是無效的,所以必須清除掉 

return head;//返回鏈首指標 

}  void showl(test *head) 

}  void deletel(test *&head,int number)//這裡如果引數換成test *head,意義就完全不同了,head變成了複製而不是原有鏈上操作了,特別注意,很多書上都不對這裡 

if(head->number==number)//判刪除的節點是否為首節點 

test *fp=head;//儲存連首指標 

for(test *&mp=head;mp->next;mp=mp->next) 

}  }  void

main() 

C C 中結構體 struct

c 裡面struct可以new,另外 c 中,struct關鍵字與class關鍵字基本是一樣的,但是,有兩點不同 1 struct定義的資料型別裡面所有成員預設級別都是共有的,而class裡面所有成員預設級別都是私有的 2 在模板定義中,只能用class 或者typename 而不能用struct提...

C C 中的結構體 struct

什麼是結構體?簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有 兩點不同,首先結構體可以 在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別 而...

結構體知識點總結

對於結構體的知識點,我主要分為以下幾點來講解 結構體的宣告 結構體型別的建立 結構體成員的訪問 結構體的初始化 結構體內存對齊 位段。1.結構體的宣告 struct stu 分號不能丟2.結構體型別的建立 有兩種建立的方法,第一種 struct stu struct stu s1 定義了乙個結構體變...