p1,p2本身不就是地址吗?为什么还要取它们的地址来scanf赋值?
首先, p1和p2是指针, 他们都指向一个地址. 这里的scanf中取的是(p1->atk)这个整体的地址. "->"的优先级高于"&".