据我所知,只要某些代码块或函数存在,就会存在堆栈上创建的变量,但是当我在函数(function1)中创建整数变量并将指针传递给另一个函数(function2)时,指针仍然指向创建的变量在第一个函数(function1)中。那么整数变量(例子中的“b”)存在多长时间?我可能错过了一些重要知识,所以有人可以向我解释一下吗?
#include <iostream>
int* function1(){
int b=30;
int *w=&b;
return w;
}
void function2(int* p){
std::cout<< *p << std::endl;
}
int main(){
int *w1;
w1 = function1();
function2(w1);
return 0;
}