簡體   English   中英

制作鏈接列表

[英]Making a Linked List

typedef struct{
    char name[25];
    int yearOfBirth;
    int district;
    char gender;
    int age;

    CitizenType *next;

}CitizenType;

當我嘗試在Visual Studio中以這種格式制作“鏈接列表”時,出現各種與語法有關的錯誤。 (總共102個),但是當我注釋掉CitizenType * next;時; 我沒有錯誤。 我意識到它與在結構完全聲明之前引用結構有關,但是我不知道如何解決此問題。

在結構之前(與結構分開)聲明typedef。

typedef struct citizen_type CitizenType;

struct citizen_type {
    ...
    CitizenType *next;
};

問題是

CitizenType

僅在結構結束后才進入類型的名稱空間。

因此,只有在聲明新類型后才能使用它。

您可以代替使用struct name (為struct name ),也可以在使用名稱聲明結構之前聲明類型,如上一篇文章所述。

嘗試這個:

typedef struct node{
    char name[25];
    int yearOfBirth;
    int district;
    char gender;
    int age;

    struct node *next;

}CitizenType;

檢查堆棧溢出答案以獲取有關C中自引用結構的更多信息。

一個CitizenType不能包含另一個CitizenType,因為它成為無休止的遞歸。

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM