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;
这样才是语法允许的
望采纳