我在推功能上遇到了问题。数组下标(top)中的变量正在使用r-value(item)初始化。
当我对top = 0进行相同的操作时,效果很好。
仅当top = -1时才会出现此问题。
在第二个和第三个函数调用中,top的值按顺序递增,并且不通过r-value(item)初始化
我每次都会打印最高值,以简化调试。
class stack
{
int top;
public:
int arr[500];
stack()
{
top=-1;
}
void push(int);
};
void stack::push(int item)
{
arr[top++]=item;
cout<<"\n"<<item<<"pushed in stack";
cout<<"\n top value is"<<top;
}
int main()
{
stack s;
s.push(12);
s.push(19);
s.push(31);
return 0;
}
我期望输出为“ 12推入堆栈,最高值为= 0,但实际输出为12推入堆栈,最高值为12