以指针为核心的 数组 指针 函数 结构体之间的关系

目录

一、什么是指针?

二、指针和数组之间的关系:          数组指针

 三、指针与指针之间的关系:        多级指针

 四、指针与函数之间的关系:        函数指针

    五、 指针与结构体之间的关系:         结构体指针 


 

一、什么是指针?

1.指针 就是 它指向空间的地址

        姿势: 指向空间的类型  *变量名字; 

        例如: int *p;          //p是一个int类型的空间地址,p指向int类型空间

     

2.取地址 解引用:

        取地址例如:

int a=10;
int *p=&a;
int **pp=&p;

         解引用:

        通过地址去得到该地址指向的那块空间

        取地址和解引用是一对相反的操作;

        *&a   ===> a


二、指针和数组之间的关系:          数组指针

        一个指针指向一个数组        //该指针是某一个数组的地址

        例如:

short arr [5];

short *p = arr;         //p指向该数组的第一个元素short

short brr[2][3];
short (*p)[3] = brr;    // p 指向 short [3]  // 数组指针


 

 三、指针与指针之间的关系:        多级指针

        一个指针指向另外一个指针     :多级指针

例如:

int a= 10;

int *p =&a;                        //p指向a空间                          //p为指针

int  **pp = &p;                  //pp指向一级指针变量p          //pp为二级指针

int  ***ppp = &pp;            //ppp指向 二级指针变量pp      //ppp为三级指针


 

 四、指针与函数之间的关系:        函数指针

        一个指针指向函数  //该指针是 某个函数的地址    //函数指针

        例如:                        

        //* 函数的名字就是函数的首地址(函数指针)

        short fun(short s,int c){}
        fun的类型:
            short (*)(short,int)  
        
        short (*p)(short,int) = fun;
        p(10,20);  // fun(10,20);

 举个例子:

int a = 10;
fun(int b)
{
	
}
fun(a);	// 


short a = 10
fun(short b)
{
	
}
fun(a);

short (*a)(short,int) ;
fun(short (*b)(short,int))
{}
fun(a);

使用:        

        回调函数:一个函数作为另外一个函数的参数

    五、 指针与结构体之间的关系:         结构体指针 

        一个指针 指向 结构体:结构体指针

struct point{
        int x;
        int y;
    };
    struct point sp;
    sp.x = 10;
    struct point *psp = &sp;
    psp->x = 10;

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值