首页 > 解决方案 > typedef 结构中的指针

问题描述

我遇到了 C 语言的堆栈教程,我似乎无法理解*Stack指针指向的内容或*next指针。我只想快速解释一下这两个指针的实际指向。

typedef struct StackElement
    {
        int value;
        struct StackElement *next;
    }StackElement, *Stack;

标签: c

解决方案


两者都没有指向您给出的示例中的任何内容。这段代码只是结构类型本身的声明。您可以将 typedef 分解为更简单的形式:

struct StackElement
{
    int value;
    struct StackElement *next;
};

typedef struct StackElement StackElement;
typedef struct StackElement *Stack;

也就是说,有一个结构本身的声明,其中包含一个next要被这个堆栈的实现代码使用的字段。该字段在填写后将指向另一个struct StackElement结构。

这些typedef部分只是方便命名 -StackElement可以用来代替struct StackElementStack也可以用来代替struct StackElement *


推荐阅读