看懂是指针数组还是数组指针小技巧c

现在遇到一个很复杂的声明,有变量名,*,[]

1.变量名和[]紧贴,没有被小括号隔开,则实质上是个数组。把变量名+[]一起摘出来就知道这个数组里都是什么类型的数据了

int *arr[5];//数组 抽出arr[5] 数组元素都是int *

int **arr[5]//数组 抽出arr[5] 数组元素都是int **

void (*arr[5]) (int*, int**);//数组 抽出arr[5] 数组元素都是void (*)(int* int**),数组元素都是函数指针,该函数原型:void func_name(int* int**)

const double * (*arr[5]) (const double*, int);//数组 抽出arr[5] 数组元素都是const double * (*) (const double*, int),数组元素都是函数指针,该函数原型:const double * func_name (const double*, int)

2.变量名和*在一个小括号里紧贴,变量名与[]被小括号隔开。 则实质上是个指针。把(*变量名)摘出来,就知道这个指针指向什么元素了

int number[5]={1,2,3,4,5};

 int (*p)[5] = &number;/指针 抽出(*p), 剩下int [5]。即指向一个5整形的数组

 int (**w)[5]= &p; //指针 抽出(**w), 指向int [5]。即w指向一个指针p,指针p指向一个5整形的数组

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值