Pointer to Pointer 顾名思义就是指标的指标~
它可能是一个变数的地址的地址~
我们要在function间~传递Pointer的时候~ 会用到Pointer to Pointer~
学习目标: Pointer to Pointer的概念及实务
学习难度: ☆☆★
Pointer函式传输parameter没side effect
#include <iostream>using namespace std;int value1 = 5;void changePtr (int *valuepointer){ valuepointer = &value1;}int main (){ int value2 = 10; int *value2Ptr = &value2; changePtr (value2Ptr);//因为这里还是copy的概念....类似call by value printf ("%d\n", *value2Ptr); //will print 10 return 0;}
Pointer Pointer函式传输parameter有side effect
#include <iostream>using namespace std;int value1 = 0;void changePtr (int **valuepointer) //value2指标的地址{ *valuepointer = &value1; //value2指标= value1地址}int main (){ int value2 = 1; //value2整数 int *value2Ptr = &value2; //value2指标 changePtr (&value2Ptr); //取value2指标的地址丢去函式 printf ("%d\n", *value2Ptr);///will print 5 return 0;}
参考资料:
http://low-understated.blogspot.com/2009/04/pointer-to-pointer.html