关于#c++#的问题:顺序栈得声明为什么要加elemtype *data

顺序栈得声明为什么要加elemtype *data;有什么作用

img

不需要啊,加它干嘛呢?都已经有data数组了,再定义一个data指针,首先是编译会报错啊,出现两个同名变量了。其次data数组实际也就是指针啊

elemType *data;

elemType data[MaxSize];
两个任意写一个就可以了。同时写反倒重复了。

写 elemType *data; 是动态分配,运行的时候加上
SqStack.data = (elemType)malloc(sizeof(elemType)*MaxSize);

加它的作用是为数组元素指定具体的数据类型,为了保证顺序栈能够存储任意类型的数据,并支持在栈顶、栈底进行插入和删除元素的操作