一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数(数组指针 指针数组)

依照题意依次写出即可:

一个有10个指针的数组:*a[10];

该指针指向一个函数:(*a[10])();

该函数有一个整形参数: (*a[10])(int);

并返回一个整型数: int (*a[10])(int)

所以int (*a[10])(int)就是答案。

阅读这种表达式的时候可以遵循以下的规则:从右向左,由近及远,括号优先;比如从a符号开始。其右边是[10],说明a是个数组,其中存了十个元素。再看a的左边是一个*。说明数组中存的是指针。现在在看(*a[10])的右边是(int);说明所存的指针是指向有一个int形参的函数现在看(*a[10])的左边是个int ,说明指向的函数的返回值为int 类型。

解读复杂指针申明:(使用右左法则)
1、从未定义的标识符(定义的变量名)开始阅读;
2、从最里面的圆括号看起,遇到右括号时调转阅读方向,看左边的;
3、解析完里面括号里面所有的东西,就跳出圆括号;然后再往右看,右边看完,再往左看

注意: 指向数组的指针和指针数组

int *a[10]: a是一个数组,该数组的元素是指针,每个指针都指向一个int型

int (*a)[10]:a是一个指针,该指针指向一个数组,数组元素是int

再看几个例子

例一:int (*a[10])(int)

1. a是一个数组  2. a这个数组的元素是一个指针  3. 指针是一个函数指针  4. 这个函数参数是int,返回值是int

例二:int (*(*p)[10])(int*)

1. p是一个指针  2. p这个指针指向一个数组  3. 数组元素是指针  4. 数组元素的指针指向一个函数  5. 这个函数参数是int*,返回值是int

例三:

  1. int *a[ 10]; 指向 int类型的指针数组a[ 10] 

  2. int (*a)[ 10]; 指向有 10个 int类型的数组的指针 a 

  3. int (*a) (int);函数指针,指向有一个参数并且返回类型均为 int的函数 

  4. int* a(int); 定义一个 int参数并且返回类型为 int*的函数  

  5. int (*a[ 10])( int); 函数指针的数组,指向有一个参数并且返回类型均为 int的函数的数组


​​​​​​​

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值