DoublePointer (**)
双重指针
1 #include<stdio.h> 2 3 int main(viod) 4 { 5 int a = 1; 6 int b = 2; 7 int * p = &a; 8 int * p1 = p; 9 int * p2 = &b; 10 11 printf("a`s adress = %p", p); 12 printf("\n p1`s value = %p", p1); 13 alterPointer(p, p2); 14 printf("\n%p---%p", p, p2); 15 printf("\na = %d", (*p)); 16 printf("\nb = %d", (*p2)); 17 alterPointerP(&p, p2); 18 //alterPointerp(p, p2); 19 printf("\n%p---%p", p, p2); 20 printf("\n%d", (*p)); 21 } 22 23 void alterPointer(int * pointer, int * pointer1) 24 { 25 (* pointer) = 3; 26 } 27 28 void alterPointerP(int ** doublePointer, int * pointer) 29 { 30 (*doublePointer) = pointer; 31 }
要想在一个函数里改变另个一函数里的 变量, 只能通过 变量的地址 来改变,将 变量的地址传给函数;
要想在一个函数里改变另一个函数里的 指针, 只能通过 指针的地址 来改变,将 指针的地址传给函数;
其实 指针 很简单,就只要记住 指针 是地址!