#include<stdio.h> #include<vector> using namespace std; vector<int> f(){ vector<int> v(3); printf("%d\n",&v); return v; } int main(){ vector<int> v=f(); printf("%d\n",&v); system("pause"); return 0; }
这个代码,输出的结果竟然一样,我开始以为vector不会没有销毁吧,最后让同学试了试,他告诉我debug环境下输出是不同的,release环境下输出是相同的,也就是说编译器进行了优化地址才相同,v还是会被销毁的。这里只是值的拷贝。