定义
顺序堆栈这三种结构定义及其初始化 - 知乎 (zhihu.com)
根据以上链接得到:
1.理解为数组,top是这个数组的索引值;定义这个结构体类型时,系统不分配空间
在主函数声明时,定义了关于这个结构体的变量,则系统会对这个结构体分配一个相应大小的空间,在初始化栈时,不需动态分配;若不定义变量,则在初始化时仍需对结构体动态空间申请。
2.定义时系统仍不分配空间,单纯定义结构体类型,没有定义结构体变量。
在主函数中定义结构体变量,系统对结构体分配空间。但初始化栈时仍需进行一次动态空间申请,这次申请分配空间的目标不是这个结构体,而是selemtype *data。
因为SElemType *data是指针变量(基地址),如果在主函数时没有定义结构体变量,则我们在初始化栈要进行两次动态空间申请,两次申请的空间目标对象不一样。???(不懂,有会的大佬帮忙解释一下,感恩!!!!!!)
定义类型(系统不会分配空间)<->定义变量(系统分配空间)
3. 初始化分配需要进行动态申请空间次数与2类似:对结构体分配空间和对其地址分配空间
初始化等基本操作
深入掌握栈的三种类型初始化 - 知乎 (zhihu.com)
根据以上链接得到:
*函数名:表示函数返回一个地址值,返回值保存在指针变量return里