【方法一】
函数参数与局部变量。函数参数先入栈,然后才是局部变量。如下面的代码,1-向上生长;0-向下生长。
int stackDir( int x )
{
int a;
return (&a - &x)>0;
}
{
int a;
return (&a - &x)>0;
}
注意:不推荐同时使用两个局部变量的地址进行判断,因为有的时候编译器会做优化。
【方法二】
声明在两个不同函数作用域中的局部变量。如下面的代码:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void func()
{
int temp;
cout<<"second function : "<<&temp<<endl;
}
void f()
{
double k;
cout<<"first function : "<<&k<<endl;
func();
}
int main()
{
f();
return 0;
}
#include <string>
#include <algorithm>
using namespace std;
void func()
{
int temp;
cout<<"second function : "<<&temp<<endl;
}
void f()
{
double k;
cout<<"first function : "<<&k<<endl;
func();
}
int main()
{
f();
return 0;
}
结果就是: