swap3 函数确实没有交换 a 和 b 的值。 具体原因分析如下: 1. 函数的设计意图 从函数名和参数 int *px, int *py 来看,这个函数的本意应该是通过指针来交换两个整数的值。 2. 函数内部的问题 让我们逐行分析这个有问题的 swap3 函数: void swap3(int *px, int *py) { int *pt; // 定义了一个整型指针变量pt pt = px; // 将指针px的地址(即指向a的地址)赋给pt px = py; // 将指针py的地址(即指向b的地址)赋给px py = pt; // 将pt中保存的(原px的,即a的)地址赋给py } 关键...