//指针变量也是变量,占据一定的内存空间,有地址,
//因此可以用一个指针指向它,这称为指向指针的指针,或二级指针
//二级指针变量存储的是一级指针变量的地址
#include<stdio.h>
#include<stdlib.h>
double num1 = 10.8;
double num2 = 20.8;
void change(double *p)
{
p = &num2;
printf("change %x\n", &p);
}
void changep(double **pp) //传递指针的地址,改变指针变量存储的值(变量的地址)
{ //*pp 对应 double * 类型
*pp = &num2;
}
void main()
{
double *p = &num1;
//change(p);
//printf("main %x\n", &p);
double **pp = &p;
//double是最终指向的变量的数据类型
//&p、pp是指针变量的地址
//*pp是根据指针变量的地址取出的值,为变量num1的地址
//**pp是根据num1的地址取出的值,为10.8
printf("%d,%d\n", sizeof(double *), sizeof(&p));
//int *p = &num1; //指针类型决定从起始地址(p)读取多长的数据,以及这一段数据如何解析
//double **pp = &p;
//p = &num2; //地址赋值,指针改变了指向
printf("%f\n", *p);
printf("%f\n", **pp);
changep(&p); //地址赋值,改变了一级指针存储的地址值
printf("%f\n", *p);
printf("%f\n", **pp);
system("pause");
}
二级指针
最新推荐文章于 2022-04-27 00:59:05 发布