因为你的char a[7] 是栈里系统分配的内存 在函数结束就会释放你把指针改为系统分配的内存地址 在函数结束后就会失效,在释放后 自然这指针指向的值就会不正确,这种是典型的指针的错误用法。
看来也只能选D了。fun函数中 s=a 只是修改了形参s的值,并不能修改main中实参p的值。