//ppp.c --- test pointer of pointer of int (int**) #include int x=38, y = 49; void haha(int**, int**); int main( ) { int* pa = &x; // pa points to x int *pb = &y; printf("*pa=%d, *pb=%d\n", *pa, *pb); printf(" x=%d, y=%d\n", x, y); printf("calling haha..\n"); haha(&pa, &pb); // Note ! printf("*pa=%d, *pb=%d\n", *pa, *pb); printf(" x=%d, y=%d\n", x, y); printf(" 注意 x 與 y 並沒有改變!\n"); return 0; } void haha(int** p, int** q) { int* t; // t is a pointer to int; *t is an int t = *p; *p = *q; *q = t; } /*** 6:38am ccbsd2:pointers/> gcc ppp.c 6:38am ccbsd2:pointers/> ./a.out *pa=38, *pb=49 x=38, y=49 calling haha.. *pa=49, *pb=38 x=38, y=49 注意 x 與 y 並沒有改變! 6:38am ccbsd2:pointers/> ***/