这个程序那里错了啊,*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;
}
指针b指向指针p的值,可以这样赋值:b= p。
*b 是改变b指针指向的位置的值,即一个int,而p是一个int 指针,所以 *b=p会发生类似不匹配错误。
如果使用*b=*p,则是让b指向的位置的一个int类型长度的内存变为p指针指向的一个int值,
因为b指针未赋值,会指向内存一个不确定位置,运行程序会用p指针的指向的值即a=3,,改变这个不确定内存位置的数据,从而发生运行错误