*p=&a;是将a的地址赋值给*p,结果会是一个十六进制的数。第二个是让p指向a的地址空间。*p的傎和a相等。inta=2,*p;*p=&a;打印*P应该是一个地址值,很长一串,p=&a;打*P印结果会是2;对于指针来说,*p=a[0],表示向地址为p的内存区域赋值为a[0]。p=a[0],把变量p的值改为a[0],这个语句正常应用中是错误的。变量p的值为内存地址,这样赋值会丢掉p原来指向的内存。