#include // 这种方式只能交换指针指向的值,不能交换指针本身,而且无法改变实参的值 void swap(int *piA, int *piB) { printf("first iA-p: %p, iB-p: %p\n iA: %d,iB: %d\n", piA, piB, *piA, *piB); int *piC; piC = piA; piA = piB; piB = piC; printf("after iA-p: %p, iB-p: %p\n iA: %d,iB: %d\n", piA, piB, *piA, *piB); } int main() { int iA = 100, iB = 200; printf("main first iA-p: %p, iB-p: %p\n iA: %d,iB: %d\n", &iA, &iB, iA, iB); int *piA = &iA, *piB = &iB; swap(piA, piB); printf("main after iA-p: %p, iB-p: %p\n iA: %d,iB: %d\n", &iA, &iB, iA, iB); return 0; }