链栈结构代码中typedef struct LinkStackPtr中的LinkStackPtr是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链栈结构代码中typedef struct LinkStackPtr中的LinkStackPtr是啥意思相关的知识,希望对你有一定的参考价值。

参考技术A C语言代码中,typedef用于定义一个派生的新类型。对于结构的typedef语法基本是:
typedef
struct
name_1

...

name_2;
就是把name_2定义成:“struct
name_1”。
如果name_2的前面有个“*”,那实际就是把name_2定义成:“struct
name_1
*”。
你所列的代码中,
typedef
struct
StackNode

...
*LinkStackPtr;
说明LinkStackPtr已经被定义成:“struct
StackNode
*”,即struct
StackNode的指针。
所以下一个定义:
typedef
struct
LinkStackPtr

LinkStackPtr
top;
int
count;
LinkStack;
其中LinkStackPtr就是刚才定义的“struct
StackNode
*”,即struct
StackNode的指针。
这样,就把struct
StackNode的指针嵌入到LinkStack的结构中了。
希望我说明白了。有问题继续交流。谢谢

数据结构基础-结构体struct及类型别名typedef的使用

一、结构体的创建

在C语言中,实现数据结构的一种常用方法便是使用结构体(structure)其示例代码如下:

struct stu {
  int num;
  char ch;
};

struct表示创建结构体 stu为结构体名称,里面的内容是各种变量类型(可以嵌套struct),然后使用示例如下:

struct stu s;
scanf("%d", &s.num);
printf("%d\n", s.num);

第一行表示创建结构为stu的结构体s,此后访问结构体内的内容需要使用 名称.名称,比如说里面的s.num表示访问结构体s里面的num。为了方便,我们介绍typedef关键词。

二、typedef的用法

typedef的作用相当于给变量类型起别名,举个例子,long long 太长,每次都写long long很烦,我们可以简化成这样

typedef long long ll;
ll b;
scanf("%lld", &b);
printf("%lld\n", b);

那么,对于结构体我们可以这样使用

  typedef struct {
    int num;
    char ch;
  } stu;
  stu s;
  scanf("%d", &s.num);
  printf("%d\n", s.num);

这样子就可以直接用stu来创建结构体 而不需要用struct stu s;这么长一串了。

 

以上是关于链栈结构代码中typedef struct LinkStackPtr中的LinkStackPtr是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

C语言结构体中struct和typedef struct有啥区别?

C : typedef 结构名称 ...; VS typedef struct... 名称;

typedef struct name 没有后续结构定义的名称

数据结构基础-结构体struct及类型别名typedef的使用

typedef struct 与 struct

C++ 类 Typedef Struct 没有命名类型