关于二级指针的一个小例子

#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





*/

 

posted @ 2018-08-19 21:46  WHyichao  阅读(46)  评论(0)    收藏  举报