下午测试stack代码的时候
#include<iostream>
using namespace std;
struct stack{
int stack[10000],num=0;
};
int out(stack &a){
a.num--;
return a.stack[a.num];
}
void in(stack &a,int b){
a.stack[a.num]=b;
a.num++;
}
int main(){
stack a,b;
in(a,114514),in(a,1919810);
cout<<out(a)<<endl<<out(a);
return 0;
}
输出了
114514
1919810
可正确输出应该是
1919810
114514
我几乎把所有玄学的方法都试过了,最后我把
cout<<out(a)<<endl<<out(a);
改成了
cout<<out(a)<<endl;cout<<out(a);
就
1919810
114514
谁能解释一下这是为什么,就算不按照顺序,为什么要倒序输出 其次,还有什么坑发出来让我避避QWQ