#include <stdio.h>
#include <stdlib.h>
double db=10.8;//实数变量
double bd=20.8;//实数变量
//二级指针
//第一,函数内部改变外部的指针变量用到二级指针
//第二,游戏外挂改变外部的指针变量,
// 改变P的指向
/*函数形式参数,除了数组以外,传递的任何数据,变量,都会新建一个变量接收传入的变量的值。
不影响原来的变量,如果是一个数据,传递数据的地址(指针),如果是一个指针,传递指针的地址。*/
void change(double *p)
{
p=&bd;
printf("\nchangep=%x",&p);
}
void changep(double **pp)// *pp 对应 double *
{
*pp=&bd;//改变指针的指向
}
void main()
{
double *p=&db;//p就是一个指针变量,容纳是db的地址
double **pp=&p;//二级指针,容纳指针地址
printf("\n%d,%d",sizeof(double *),sizeof(&p));
//double **p=&p;能编译并不意味运行正确
//printf("\n%d,%d",sizeof(double),sizeof(&p));
printf("\nmain p=%x",&p);
//p=&bd;//地址的赋值,指针改变了指向
change(p);
//指针的类型决定从地址开始有多长,这段如何解析
changep(&p);
printf("\n%f",*p);
//double **pp=&p;
//getchar();//等待
//system("pause");
}
/*
结果:
4,4
main p=12ff44
changep=12fef0
20.800000Press any key to continue
*/