c++ 数组指针、指针数组、函数指针

[]优先级比*高,低于(),根据这个原则去判断
数组指针
数组指针即数组的指针,是一个指针,指向一个数组;也称为行指针
Int (P)[2] (可以理解为Int ()[2]P,但是不能这样子定义)P是一个指针,指向一个数组,数组元素是int长度为2
二维数组可以赋值给数组指针
int a[3][4];
int (*p)[4];
p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]
p++; //p指向a[1][]

指针数组
指针数组是一个数组,元素为指针
Int * P[4](可以理解为Int *[2]P,但是不能这样子定义) []优先级高,P是一个长度为4数组,元素是整型指针

如要将二维数组赋给一指针数组(要分别赋值):
int *p[3];
int a[3][4];
p++; //该语句表示p数组指向下一个数组元素。注:此数组每一个元素都是一个指针
for(i=0;i<3;i++)
p[i]=a[i]

“数组名被改写成一个指针参数”规则并不是递归定义的。数组的数组会被改写成“数组的指针”,而不是“指针的指针”:

实参 所匹配的形参

数组的数组 char c[8][10]; char (*)[10]; 数组指针

指针数组 char *c[10]; char **c; 指针的指针

数组指针(行指针) char (*c)[10]; char (*c)[10]; 不改变

指针的指针 char **c; char **c; 不改变

函数指针
函数指针就是函数的指针。它是一个指针,指向一个函数。

char * (fun)(char * p1,char * p2)
可以理解为( char * (
)(char * p1,char * p2)fun) 
参考数组指针 int (*)[10] p int (*p)[10]
fun一个指针,它指向一个函数。这个函数有两个指针类型的参数,函数的返回值也是一个指针

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值