printf("%s\n",p);为打印字符串,传的是字符串的地址,p就是一个指向这个字符串地址,所以没什么问题。若你要打印这个物理地址,直接printf("%d\n",p);就可以拉,你加个*,就是取这个地址的值了,所以printf("%d\n",*p); 等于97(即ASCII码的 a 的值),printf("%d\n",*(p+1)); 等于98(即ASCII码的 b 的值)
试一下%p格式