我是 C 语言的新手,对所有指针的东西都有一些问题。
我写了这段代码:
typedef struct edgeitem
{
double weight;
}EDGE_ITEM, *pEDGE_ITEM; //also declaration of a pointer
/************ edge that includes a pointer to the edge item, next and prev ******/
typedef struct edge
{
pEDGE_ITEM *edge_item;
pEDGE *next; //pointer to next edge
pEDGE *prev; //pointer to prev edge
}EDGE, *pEDGE;
我以这种方式得到一个错误,只是无法理解为什么。
我知道edgeitem
并且edge
是标签,我可以使用struct edge *next
,但我声明了指针,为什么我不能使用它们?
如果我有指针,我需要使用 * 吗?
pEDGE_ITEM *edge_item
//or
pEDGE_ITEM edge_item
我无法理解,这是一个指针,所以为什么要添加 *?
最后一个问题是:如果我使用上面的,有什么区别:
*EDGE next
EDGE *next
最后一个:如果我要添加:
typedef struct edge_list
{
EDGE *head;
}EDGE_LIST;
是否与以下内容相同:
pEDGE head;