怎样才能知道指针变量在内存中的地址编号?

如果先定义一个指针变量*m,那么单程序运行时,m将会存储一个内存的地址。但是同时它自己也将要占用一定的内存。那么怎样取得m在内存中的地址呢?我用的是DEV-C++。当我用... 如果先定义一个指针变量*m,那么单程序运行时,m将会存储一个内存的地址。但是同时它自己也将要占用一定的内存。那么怎样取得m在内存中的地址呢?我用的是DEV-C++。当我用取地址符&,想要取得m的地址时,编译会出错,为什么?但是如果我用
c=&*m,d=&*n时虽然不会出错,但是运行后的结果,*m,*n的地址值怎么和a,b的地址值是一样的呢?还有最后输出的e,f的值为什么不是0?
例程:#include<stdio.h>
int main()
{
int a=123,b=1234567;
int *m,*n,*c,*d,*e,*f;
m=&a;
n=&b;
c=&*m;
d=&*n;
printf("*m=%d\t,*n=%d\n",*m,*n);
printf("m=%d\t,n=%d\n",m,n);
printf("c=%d\t,d=%d\n",c,d);
printf("%d\t,%d\n",e,f);

return 0;
}
运行结果:
*m=123 ,*n=1234567
m=2293620 ,n=2293616
c=2293620 ,d=2293616
8 ,4072560
展开
 我来答
My空心果
2011-09-20 · TA获得超过1290个赞
知道小有建树答主
回答量:753
采纳率:0%
帮助的人:625万
展开全部
int *m,*n,*c,*d,*e,*f;
m=&a;//将a的地址值赋给指针变量m。
n=&b;//将b的地址值赋给指针变量m。
c=&*m;//*m和*n是分别指向存储单元a和b,所以“c=&*m”等价于“c=&a”
d=&*n; //等价于d=&b

所以 m和c 的值相同,n和d的值相同,就不奇怪了。
至于e、f,你没有指向,系统默认指向NULL,也就是空值0
追问
那怎样取得指针变量的内存地址?其二,我这里运行的结果e,f并不等于0而是等于8,4072560。为什么?
追答
求指针变量的内存地址:以下是求指针变量m的内存地址。
int **s, *m,*n,*c,*d,*e,*f;
s=&m;
printf("指针m的地址:%d\n",s);

另外,e、f这两个指针变量,没有初始化,即没有赋值,所以它们的值是不确定的。通俗一点,e、f,乱指一通,毫无目标。
qicaiwuya
2011-09-20 · TA获得超过4213个赞
知道小有建树答主
回答量:1462
采纳率:100%
帮助的人:1218万
展开全部
定义一下 指向指针的指针 类型变量,,就可以取一个指针的地址了
追问
怎样定义?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式