<span style="font-size:18px;">#include<stdio.h>
#include<stdlib.h>
double da = 10.1;
double db = 20.1;
void changep(double **tt)
{
*tt = &db;
}
void main()
{
double *p = &da;
double **pp = &p;
changep(&p);
printf("\n p1 = %f",*p);
getchar();
}</span>
指針的指針又是怎樣的一個過程呢?左邊是內存的位置,右邊是值
2001 | 10.1 |
2009 | 20.1 |
3009 | *p |
double **pp = 3009 | |
那這時 double **pp代表什麼?
pp = 3009,*pp=2001,**pp = 10.1
當調用 changep(double **t)後,讓 tt 與pp指向了同一個位置 p,當執行 *tt = &db後,是不是把 tt指向的單元的內容個替換了,此時 *pp = 2009,所以此時main打印的值就是20.1。