C语言输出地址问题

printf("i的地址为:%p",i);和printf("i的地址为:%d",i);有什么区别?
2024-12-29 17:09:57
推荐回答(3个)
回答1:

首先,printf("i的地址为:%p",i);不是输出地址,而是输出i的值,但是会以16进制输出。
如果输出i地址,应该是 printf("i的地址为:%p",&i);
而%d就是以十进制输出i的值

回答2:

能够输出地址值!
#include"stdio.h"
main()
{int
*p,a=10,**b;p=&a;b=&p;
printf("%d",b);
}
这个程序就可以(注意变量名,前后要一致,不要用大写!请将*p改为*p)。
将最后一行改为:printf("%x",b);你会看得更真切!(%x:按十六进制输出)

回答3:

printf("i的地址为:%p",i); //打印变量i的地址值
printf("i的地址为:%d",i); //打印变量i的值