temp=*p1; //先使把一个值当做地址给了temp,虽然这么做的是错的,但是temp依然把这个值当做地址存储在了指针里,也就是说。现在temp指向的地址是*p1也就是2
*p1=*p2; //这里没错
*p2=temp;//这里,你又把一个地址当做值送给了*p2,虽然这个数据在temp里被当做地址,但是传送到*p2就被当做了值。
说到底,不管int指针还是int值,在计算机眼里都是二进制,只不过你指定int,计算机就把他当做值来看,反之就当地址来看待。如果你把*p2送给char类型,计算机还能把他当做字符处理。他们的本来面目都是二进制~~
*p1=*p2; //这里没错
*p2=temp;//这里,你又把一个地址当做值送给了*p2,虽然这个数据在temp里被当做地址,但是传送到*p2就被当做了值。
说到底,不管int指针还是int值,在计算机眼里都是二进制,只不过你指定int,计算机就把他当做值来看,反之就当地址来看待。如果你把*p2送给char类型,计算机还能把他当做字符处理。他们的本来面目都是二进制~~