为什么 int x = 3 , y ; int *px = &x ; y = *px++ ,printf(“%d,%d”,*px,y); 的值为3,3 ? 1、首先这个y = *px++等价于y = *px ,px++ , 所以,执行后的值x = 3,y = 3. 2、地址问题,出现这种问题是因为x,y的地址是连续的,px++就指向了y,所以就出现3,3这个结果了: 1、总结,根据上面的解释,就只是一个巧合,因为,c中没有说,连续定义的变量一定是连续的内存。