我遇到了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/

10-12 03:20