Chinaunix首页 | 论坛 | 博客
  • 博客访问: 804549
  • 博文数量: 117
  • 博客积分: 2583
  • 博客等级: 少校
  • 技术积分: 1953
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-06 22:58
个人简介

Coder

文章分类
文章存档

2013年(1)

2012年(10)

2011年(12)

2010年(77)

2009年(13)

2008年(4)

分类: C/C++

2009-10-17 19:58:26

感觉这是一个蛮有意思的问题
1、获得函数的地址
函数名实际上就是指针,所以我们可以通过强制类型转换来获取函数的地址。比如如果我们要获取主函数main的内存起始地址,我们可以这样:

int i = 0;

i = (int)main;
printf(“%d\n”,i);

这样我们就获取了main函数的地址了啊,其他的自定义的函数也是同样的道理啊。
2、获取变量地址
这个是相当简单的啊,我们都知道C语言是有指针的啊,我们可以取一个变量的地址,然后再通过强制类型转换来获得我们想要的内存地址,比如


int variab = 0;
int addrvar = 0;
addrvar = (int)&variab;

这样我们就在变量addrvar中保存了变量variab的地址了啊。

3、获得数组的地址
数组本身就是指针,它本身就是内存地址,和获得函数地址的方法一样啊。比如

int array[10];
int addrarr;
addrarr = (int)array;

阅读(2096) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~