关于%p与变量、指针变量的输出关系

#include<stdio.h>
int main()
{
    int i=8;
    int *p=&i;       //取i的地址并赋给指针p
    printf("%p\n",i);
    printf("%p\n",&i);
    printf("%p\n",p);        //输出的是指针p存储的地址
    printf("%p\n",&p);       //输出的是指针p本身的地址

    printf("%x\n",*p);      //*p当做一个整体的数,即指针P通过*访问地址上的变量的数据
    
 //  %x是以16进制格式输出,但是不带16进制的前缀0x
 /*   ("%p", i)用地址的格式打印a变量的值,即a所存储的内存地址
      printf("%p", &i)打印a变量所在的地址,即a本身的内存地址

  */
    
}

关于%p与变量、指针变量的输出关系