关于指针一个概念的小疑点

关于指针一个概念的小问题
#include<stdio.h>
void main()
{
  int a=22,*p=a;
  printf("%d %d",p,*p);
  getch();
}
其中输出的p和*p各代表什么?
输出是p为22,*P为8038
我的理解是P是A 的地址,*P是A的内容

------解决方案--------------------
你的写法是错误的
int *p=a;
等价于
int *p;
p=a(22)
*p代表内存地址22里的值8038

正确的写法是int *p=&a;

懂了的话要结业给分哦