你的程序是按十进制输出a的地址,没什么错,只是10进制有符号的数表示地址有点不像,你可以改成无符号型。
#include
main()
{
unsigned int a=1;
unsigned int *b=&a;
clrscr();
printf ("%u",b);
getch ();
}
也可以按十六进制输出:
想输出a的地址:
printf ("%x",b);
想输出b的地址:
printf ("%x",&b);
你的代码完全正确!
只是你看到10进制有符号的数表示地址有点不像,你可以将printf函数那句改成:
printf ("%x",b);
main()
{
int a;
printf("%d",a);
}
因为a已经是确定的值了,打印内存中的地址,肯定会乱码的
不能打地址的 打印内存中的地址 肯定会乱码的