sgdd.net
当前位置:首页 >> typEDEF struCt{ DAtAtypE num[MAXSIZE]; int top; }s... >>

typEDEF struCt{ DAtAtypE num[MAXSIZE]; int top; }s...

这是用结构体定义一个栈,栈顶指针为top,栈内数据为num[].

typedef struct //说明是定义一个结构体 { DataType data[MAXSIZE]; //定义一个DataType类型的数组,DataType是一个宏定义中的类型,你可以将它指定为int也可以指定为char什么的,其实就是用DataType这个单词代替你现在所有的一个类型.MAXSIZE也是一个宏定义,表明数组的长度. int last; // 定义的一个int类型的变量last 猜测表示下一个连接结构体的位置 }SList;//SList表示定义了这个struct类型的变量.不懂的可以直接向我提问.

这只是声明了一种类型,跟定义结构体变量不同.声明类型不需要占用内存,定义结构体变量是需要占用内存的.从问题给出的例子看:typedef struct{ SElemType *base; // 栈的基址指针,或者叫栈底指针 SElemType *top; // 栈顶指针 int stacksize; // 栈大小 }SqStack;

DataType应该是写这段程序的人定义的一个宏.#define int DataType;如果是这个的话,那么DataType就是整型了.这样写的话,只要通过修改int为别的类型,就能够实现对不同的数据类型进行栈操作了,而不用逐个把所有的int改了.

base 是指针,动态分配内存单元后,用来存放队列数据.有些人不用指针,而用一个固定的大数组.front 为队列头,rear为队列尾.插入数据时从队列尾加入,删除数据要从队列头开始.定义一个队列,这3个成员变量是必须有的.

ElemType通常是一个宏,例如#define ElemType int, 这样就可以更方便的改变数据结构里的元素的数据类型了

好吧,看来你对typedef 这个关键字还不是很了解啊首先typedef 定义其实和#define 很类似的都是给你要定义的变量取一个简洁实用的名字.这里的strcut StackArry{}是个结构体,而你之后定义的StackArry其实并不是一个对象而是相当于你这个结

ElemType *elem 定义了一个ElemType类型的指针.ElemType应该也是自定义的一个数据类型.

你好!int类型的别名 DataType;所以 int a;等同于 DataType a; 如有疑问,请追问.

typedef不是用来定义变量,是用来自定义类型的.typedef struct{ int *base, top, size; }Stack; // Stack S; //这里才是定义栈S

相关文档
krfs.net | clwn.net | pxlt.net | sgdd.net | zmqs.net | 网站首页 | 网站地图
All rights reserved Powered by www.sgdd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com