我已经得到了一个将构成我的堆栈的节点的结构,但是我很难理解它。
struct stackNode
{
char data;
struct stackNode *nextPtr;
};
typedef struct stackNode StackNode;
typedef StackNode *StackNodePtr;
我知道我有一个名为stacknode的结构,它被重命名为stacknode(或者第二个类型除了名称之外都是相同的?),它有两种类型,一个char和一个指向stacknode的指针。
我不知道最后一行是什么意思,有人能给我解释一下吗?我认为这意味着有一个新的类型,它是一个指向stacknode的指针,叫做stacknodeptr。是这样吗?
最佳答案
是的,当你使用StackNodePtr
的时候,你实际上是在使用StackNode*
,而这又等于struct stackNode*
。间距和星号位置显然会导致一些混淆。我个人会把它写成typedef StackNode* StackNodePtr;
以便更清楚地知道什么会被打印成什么。
这三条线是相等的:
StackNodePtr myPointer;
StackNode *myPointer;
struct stackNode *myPointer;
typedef struct stackNode StackNode
的原因通常是为了避免每次使用它时都要编写struct
。关于c - 在C结构中为节点创建堆栈,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16452770/