为什么使用指针的指针?
而不直接使用指针呢?

解决方案 »

  1.   

    我的理解是: 例如:(int **first)
    你有一个指向第一个数据的指针(int *first1)。 (这时  first指向first1)
    还有个指针是(int *first2),开始你用first1来表示指针指向的数据为第一个数据。
    但是,当你想改变,要用first2指向的数据为第一个数据时,
    (这时改为,first指向first2)
      

  2.   

    楼上说的是个什么呀……说的都晕了如果用一级指针来传递的话,因为指针本身,记住是本身,是按值传递的,所以函数执行完后,指针的本身,其实是没有变化的。而如果用二级指针(即楼主说的,指针的指针),同样,二级指针本身是按值传递的,而我们真正的有效数据,指向二级指针的一级指针的本身的内容是按址传递的,如果你在函数中对它进行了操作,比如你分配了内存,并把内存地址赋给它,当函数结束后,这个一级指针还是执行它。当然那个二级指针由于前面说的,它是按值传递的,所以它又变回原来的值了。用这种二级指针(指向指针的指针)很大的一个应用就是上面说的,由函数内部来分配内存,外面来用。如COM里面的接口指针,外面只声明了一个接口指针,并没有分配任何内存,为什么后来就可以用了呢?因为它在函数里面得到了内存,即得到了实际的内容。
      

  3.   

    lovessm(Jensy) | (不知道自己帅不帅) 讲得很明了
      

  4.   

    我明白了,谢谢大家!
    btw,lovessm(Jensy) | (不知道自己帅不帅)高人也!