关于指针问题,出现[Error] invalid conversion from 'int*' to 'int' [-fpermissive]

这个程序那里错了啊,*b(指针b)指向p的地址,这那里错了啊

#include <stdio.h>
int main()
{int a;
int *p,*b;
a=3;
p=&a;
*b=p;
printf("%d.\n %d \n",p,*p);
    printf("%d \n %d",b,*b);
    return 0;    
}


img

指针b指向指针p的值,可以这样赋值:b= p。
*b 是改变b指针指向的位置的值,即一个int,而p是一个int 指针,所以 *b=p会发生类似不匹配错误。

如果使用*b=*p,则是让b指向的位置的一个int类型长度的内存变为p指针指向的一个int值,
因为b指针未赋值,会指向内存一个不确定位置,运行程序会用p指针的指向的值即a=3,,改变这个不确定内存位置的数据,从而发生运行错误