指向数组的指针,指向函数的指针

指向数组的指针:int(*p)[5];

定义了一个指向数组元素为int型的元素个数为5的一维数组;

也可以理解为二维数组的首元素就像int*p指向int型可以理解为一维数组的首元素;

也可以理解为*p为一个指针,指针里面的内容是一个有5个int值的数组;*p=a[5];

其中,"类型说明符"为所指数组的数据类型。"*"表示其后的变量是指针类型。"长度"表示二维数组分解为多个一维数组时,一维数组的长度,也就是二维数组的列数。注意,"*(指针变量名)"两边的括号不可少,如缺少括号则表示的是指针数组。

p指向二维数组的第一个元素a[0]; 其值等于 a,a[0],&a[0][0];

p+i 等于a[i];

*(p+i)+j等于 a[i][j];

指针数组:int* array[5];

表示数组元素为int型指针的一维数组;

指向函数的指针:int (*pfun)(parameter);

上面定义了 一个指向 返回值是int型, 参数是parameter 的形参的 函数指针pfun

typedef int (*PFUN)(int a, int b);

PFUN fun;

int a = (*fun)(2, 3);

返回指针的函数:int* fun(parameter);

返回指向函数的指针的函数:

//函数形式是set_handler(void(*f)())
//返回指向(返回值是void,参数是void的函数)指针
//可以理解为void (*tmp)();
//tmp = set_handler(void(*f())
void (* set_handler(void(*f)()))()
{
    cout << "set_handler" << endl;
    return f;
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值