C语言输出地址问题

printf("i的地址为:%p",i);

printf("i的地址为:%d",i);
有什么区别?

首先,printf("i的地址为:%p",i);不是输出地址,而是输出i的值,但是会以16进制输出。
如果输出i地址,应该是 printf("i的地址为:%p",&i);
而%d就是以十进制输出i的值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-25
能够输出地址值!
#include"stdio.h"
main()
{int
*p,a=10,**b;p=&a;b=&p;
printf("%d",b);
}
这个程序就可以(注意变量名,前后要一致,不要用大写!请将*p改为*p)。
将最后一行改为:printf("%x",b);你会看得更真切!(%x:按十六进制输出)
第2个回答  2019-03-15
printf("i的地址为:%p",i); //打印变量i的地址值
printf("i的地址为:%d",i); //打印变量i的值
相似回答