почему значение r присваивается переменной внутри индекса - PullRequest
0 голосов
/ 19 июня 2019

У меня проблема с функцией push.Переменная внутри нижнего индекса массива (top) инициализируется значением r (item).

  1. Когда я выполняю ту же операцию с top = 0, она работает нормально.

  2. Проблема возникает, только когда top = -1.

  3. Во втором и третьем вызове функции значение top увеличивается последовательно и не инициализируется значением r(предмет)

  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

.
...