結構體中的遞歸定義

# include <stdio.h>

typedef struct binode{
    int a;
    struct binode *l;

}binode;
int main()
{
int a;
int *p;
binode s;
printf("%d %d",sizeof(a),sizeof(s));
return 0;
}
結果正確:
4 8


# include <stdio.h>

typedef struct binode{
    int a;
    struct binode p;

}binode;
int main()
{
int a;
int *p;
binode s;
printf("%d %d",sizeof(a),sizeof(s));
return 0;
}


系統報錯:
Line 5: error: field 'p' has incomplete type
compilation terminated due to -Wfatal-errors.


通過以上測試可以看出。結構體在遞歸定義的時候可以定義本身,但是需要用指針,並且大小和結構體中的其他成員有關係。
如果用變量會出錯,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章