int *a; 这句话未初始化a的内存,这样定义a可能是个空指针
int *&p = a; 说明p代表了a的内存,由于a没初始化内存,此时p应该也是空的
*p = b; 此时对一个空的指针赋值是会报错的
解决方案: 是将a初始化一块内存如:int *a = new int;
不知道是想要完成什么功能
~
语法上,*a未初始化
int main() {
int M=0;
int *a=&M;
int *&p = a;
int b = 20;
*p = b;
cout << *a;
return 0;
}