常用的指针的定义、赋值与应用

一:指向普通变量的指针

定义:int a,*p;

指针的赋值(建立指向关系) p=&a;

指针的应用(等价代换):a-----*p;

                                          &a-----p;

二:指向一维数组元素的指针:

定义:int a[5];    int *p;

指针的赋值(建立指向关系):p=a;//p=&a[0];(指向了一维数组的首元素);

指针的应用(等价代换):

          地址:&a[i]----a+i----p+i----&p[i];

          元素值:a[i]----*(a+i)----p[i]----*(p+i);

          p++;//p现在相当于&p[0][1];

三:指向二维数组元素的指针:

定义:int a[m][n];     int *p;

指针的赋值(建立指向关系):p=&a[0][0];  //  p=&a[0];(指向二维数组的首元素)

指针的应用(等价代换):

        *(p+x)----a[x/n][x%n];

        a[i][j]----*(p+i*n+j);

        p++//现在的p相当于&a[0][1];

四:指向二维数组行的指针(指向一维数组行的指针)

定义:int a[m][n];    int (*p)[n];

指针的赋值(建立指向关系):p=a;  //  p=&a[0];

指针的应用(等价代换):

        地址:&a[i][j]----*(a+i)+j----&p[i][j]----*(p+i)+j;

        元素值:a[i][j]-----*(*(a+i)+j)----*(*(p+i)+j)----p[i][j];

        p++;//现在的p相当于&a[1],即第二行的地址。

五:指向指针的指针:
定义:int a;  int *p;  int **q;

指针的赋值(建立指向关系):p=&a;  q=&p;

指针的应用(等价代换):

          地址:&a----p-----*q

                     &p----q

       元素值:a----*p----**q

六:指向函数的指针:

定义:float abc(int a,float b);

          float (*p)(int,float);

指针的赋值(建立指向关系):p=abc;

指针的应用(等价代换):函数的调用  y=abc(a,b);

                                                                y=(*p)(a,b);

七:指针数组:

定义:int a;    int b[20];    int *p[5];

指针的赋值(建立指向关系):p[0]=&a;    p[1]=b;

指针的应用(等价代换):

             地址:p[0]----&a;    *p[0]----a;     p[1]-----&b[0]

             函数值:b[i]----*(p[1]+i)----p[1][i];

八:返回值为指针的函数:

定义:int *(p)(int a,float b);//p函数的返回值为一个地址。

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值