在教学中,老师说:结构体类型不能递归调用,比如 struct student{
int num;
struct student kobe;
}这种是不允许的
但在数据结构学科中,线性表的单链表的结构定义为
typedef struct Lnode{
ElemType data;
struct Lnode *next;
}Lnode , *linklist;
请在行的人解释下为什么?
ããå¨Cè¯è¨ä¸ï¼ç»æä½(struct)æçæ¯ä¸ç§æ°æ®ç»æï¼æ¯Cè¯è¨ä¸èåæ°æ®ç±»å(aggregate data type)çä¸ç±»ãç»æä½å¯ä»¥è¢«å£°æ为åéãæéææ°ç»çï¼ç¨ä»¥å®ç°è¾å¤æçæ°æ®ç»æãç»æä½åæ¶ä¹æ¯ä¸äºå ç´ çéåï¼è¿äºå ç´ ç§°ä¸ºç»æä½çæå(member)ï¼ä¸è¿äºæåå¯ä»¥ä¸ºä¸åçç±»åï¼æåä¸è¬ç¨åå访é®ã
ããå¨Cè¯è¨ä¸ï¼å®ä¹ä¸ä¸ªç»æçä¸è¬å½¢å¼ä¸ºï¼
ããstructç»æåãã
ããæå表ç±è¥å¹²ä¸ªæåç»æï¼ æ¯ä¸ªæåé½æ¯è¯¥ç»æçä¸ä¸ªç»æé¨åã对æ¯ä¸ªæåä¹å¿ é¡»ä½ç±»å说æï¼å ¶å½¢å¼ä¸ºï¼âç±»å说æ符 æåå;âãæååçå½ååºç¬¦åæ è¯ç¬¦ç书åè§å®ãä¾å¦ï¼
ããstruct stuãã
ããå¨è¿ä¸ªç»æå®ä¹ä¸ï¼ç»æå为stuï¼è¯¥ç»æç±4个æåç»æã 第ä¸ä¸ªæå为numï¼æ´ååéï¼ç¬¬äºä¸ªæå为nameï¼å符åæ°ç»ï¼ç¬¬ä¸ä¸ªæå为sexï¼å符ååéï¼ç¬¬å个æå为scoreï¼æµ®ç¹ååéã åºæ³¨æå¨æ¬å·åçåå·æ¯å¿ ä¸å¯å°çã
ããç¶åï¼å½ç»æå®ä¹å®æåï¼å³å建äºä¸ç§æ°æ®ç±»åï¼å¯ä»¥åintãfloatçå 置类åä¸æ ·ä½¿ç¨ï¼ä»¥ä¸é¢å®ä¹çstuç»æä½æ¥åintç±»å对æ¯ççã
ããint a;//å®ä¹ä¸ä¸ªintç±»åçåéa