我遇到了C语言的堆栈教程,但似乎无法理解*Stack
指针所指向的内容和*next
指针。
我只想对这两个指针实际指向的内容有一个简短的解释。
typedef struct StackElement
{
int value;
struct StackElement *next;
}StackElement, *Stack;
最佳答案
两者均未指向您提供的示例中的任何内容。此代码只是结构类型本身的声明。您可以将typedef分解为更简单的形式:
struct StackElement
{
int value;
struct StackElement *next;
};
typedef struct StackElement StackElement;
typedef struct StackElement *Stack;
也就是说,有一个结构本身的声明,其中包含要由该堆栈的实现代码使用的字段
next
。填写该字段后,它将指向另一个struct StackElement
结构。typedef
部分只是用作方便的名称-可以使用StackElement
代替struct StackElement
,并且可以使用Stack
代替struct StackElement *
。关于c - typedef结构中的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58846489/