#include
using namespace std;
void func1(int i);
void func2();
int main()
{
func1(1);
system(“pause”);
return 0;
}
void func1(int i)
{
unsigned char buf[1] ;
cout << “形参i的地址:” << hex << &i << endl;
cout << “数组buf的首地址:” << (void *)buf << endl;
int k = (int)&i - (int)buf;
long long go = (long long)&func2;
cout << “func2的地址:” << &func2 << endl;
cout << “func2的地址:” << hex<<go << endl;
buf[k - 1] = go>>56;
buf[k - 2] = (go<<8)>>56;
buf[k - 3] = (go<<16)>>56;
buf[k - 4] = (go<<24)>>56;
buf[k - 5] = (go<<32)>>56;
buf[k - 6] = (go<<40)>>56;
buf[k - 7] = (go<<48)>>56;
buf[k - 8] = (go<<56)>>56;
long long *p;
p = (long long *)(&buf[k - 8]);
cout << endl << “存储返回地址的位置:” << p << endl;
cout << “值为:” << uppercase << *p << endl;
cout << “该位置的8个字节:” << endl;
cout << “地址” << (void *)&buf[k - 1] << “处存放的值为:” << uppercase << (int)(buf[k - 1]) << endl;
cout << “地址” << (void *)&buf[k - 2] << “处存放的值为:” << uppercase << (int)(buf[k - 2]) << endl;
cout << “地址” << (void *)&buf[k - 3] << “处存放的值为:” << uppercase << (int)(buf[k - 3]) << endl;
cout << “地址” << (void *)&buf[k - 4] << “处存放的值为:” << uppercase << (int)(buf[k - 4]) << endl;
cout << “地址” << (void *)&buf[k - 5] << “处存放的值为:” << uppercase << (int)(buf[k - 5]) << endl;
cout << “地址” << (void *)&buf[k - 6] << “处存放的值为:” << uppercase << (int)(buf[k - 6]) << endl;
cout << “地址” << (void *)&buf[k - 7] << “处存放的值为:” << uppercase << (int)(buf[k - 7]) << endl;
cout << “地址” << (void *)&buf[k - 8] << “处存放的值为:” << uppercase << (int)(buf[k - 8]) << endl;
}
void func2()
{
cout << endl << endl << “运行到没有调用的函数处,实验成功!!!”;
}