复习 C 指针的基础概念


概            念:指针就是地址

数组的关系:数组名就是数组的首地址


开始定义的时候加*,     比如int *p;/*这里加*是表示p是一个int型的指针*/


指向值的时候加*,       比如int *p,a; *p=a;


指向地址的时候不加*,    比如int *p,a[3];p=a;*p=a[0];


开始定义的时候         *是表明p是指针

到后面用的时候         p表示地址,*p表示p指向"地址的值"


举例:

   int a=1;

   int *p

   p=&a;

   printf("%d%d",*p,p);

这个时候两个输出的值

       第一个就是1(变量的值)

       第二个输出的是变量a地址


    int *p;

    int **pp;

    int ***ppp;

    int a = 1;

    pp = &p;//取指针p的地址

    ppp = &pp;//取指针pp的地址


    **ppp = &a;//等同于p的指向,p指向到a的地址


    //画个草稿图(非标准),作为自己理解用

    /*

     变量:a   a的值为: 1

     

         &取地址       

     _____________________________

     |    地址     |           |

     | -1073752412 |      1      |

     |_____________|_____________|   */

     

   NSLog(@"===========a的地址=============");

   NSLog(@"              a的地址:%d",&a);//通过& (&a) 能取到 a的地址



        

        

   NSLog(@"===========1级指针=============");

   /*     

     1级指针声名:*p 名字:p   指向变量 a:   p = &a;

     

         &取地址      *取得指向地址的值

     _____________________________

     |    地址     |(p的指向地址)|

     | -1073752400 | -1073752412 |

     |_____________|_____________|    */

     

   NSLog(@"              p的地址:%d",&p); //通过 & (&p)取得 p的地址

   NSLog(@"                p的值:%d", p);//p的值(p的指向地址)

   NSLog(@"    *p(1)指向地址的值:%d",*p);//a的值



        

        

   NSLog(@"===========2级指针=============");

    /*

     2级指针声名:**pp 名字:pp   指向指针 p:   pp = &p; 

     

         &取地址     *取得指向地址的值

     ______________________________

     |    地址     |(pp的指向地址)|

     | -1073752404 | -1073752400  |

     |_____________|______________|   */

     

   NSLog(@"             pp的地址:%d",&pp);   //通过 & (&pp)取得 pp的地址

   NSLog(@"               pp的值:%d",pp);   //(指针pp)的值.(pp的指向地址

   NSLog(@"   *pp(1)指向地址的值:%d",*pp); //(指针 p)的值

   NSLog(@"  **pp(2)指向地址的值:%d",**pp);//2级指向,往下指两次,得到值.(1级取得pp指向地址的值(p),2级得到p指向地址的值(a))

     


        

        

   NSLog(@"===========3级指针=============");

    /*

     3级指针声名:***ppp 名字:ppp   指向指针 pp:   ppp = &pp;

     

         &取地址     *取得指向地址的值

     _____________________________

     |    地址     |(pp的指向地址)| 

     | -1073752408 | -1073752404  |

     |_____________|______________|    */


      

   NSLog(@"            ppp的地址:%d",&ppp);      //通过 & (&ppp)取得 ppp的地址

   NSLog(@"              ppp的值:%d",ppp);      //(指针 ppp)的值. (ppp的指向地址)

   NSLog(@"  *ppp(1)指向地址的值:%d",*ppp);    //取得指向地址下一级的值.

   NSLog(@" **ppp(2)指向地址的值:%d",**ppp);  //取得指向地址下二级的值

   NSLog(@"***ppp(3)指向地址的值:%d",***ppp);//取得指向地址下三级的值.

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值