链栈结构代码中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 没有后续结构定义的名称