为什么将r值分配给数组下标内的变量

时间:2019-06-19 11:46:11

标签: arrays c++11 post-increment

我在推功能上遇到了问题。数组下标(top)中的变量正在使用r-value(item)初始化。

  1. 当我对top = 0进行相同的操作时,效果很好。

  2. 仅当top = -1时才会出现此问题。

  3. 在第二个和第三个函数调用中,top的值按顺序递增,并且不通过r-value(item)初始化

  4. 我每次都会打印最高值,以简化调试。

    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

0 个答案:

没有答案