初識指針4(指針的指針的理解)

<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。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章