struct LinkNode*和LinkNode*有什么区别

 struct LinkNode*和LinkNode*有什么区别

例如:typedef struct LinkNode{

           LinkNode*next;

};

和typedef struct LinkNode{

          struct LinkNode*next;

};

有什么区别吗?

 

第一种,你结构体成员不加struct肯定是语法不允许的,换一种写法也许会比较容易懂

struct LinkNode{
          struct LinkNode*next;
};
typedef struct LinkNode LinkNode;

你不加struct的话typedef都还没有对它重命名,所以肯定要加struct,加struct的才是它真正的类型,typedef只不过是对它的一次重命名。
第二种应该也不对,应该是

typedef struct LinkNode{
          struct LinkNode*next;
}LinkNode;

或者你写成这样也行

typedef struct{
          LinkNode*next;
}LinkNode

这样才是语法允许的
望采纳