《C语言笔记:指针数组和数组指针》

一,从字面意思来理解指针数组和数组指针

  1,指针数组:实质是一个数组,这个数组里存放的元素是指针。

  2,数组指针:实质是一个指针,这个指针指向一个数组。

二,分析指针数组和数组指针的表达式

  int *p[5]; int (*p)[5];int *(p[5])

  1,先说说一般规律。

    int *p;(p是一个指针),int p[5];p是一个数组。在定义一个符号的时候,首先要搞清楚定义个符号是谁(找核心);其次再看谁和核心最近、谁跟核心结合(找结合);以后再继续往外扩展(继续向外结合直到整个符号完)。

  2,如果核心和*结合,表示核心是指针;如果核心和[ ]结合,表示核心是数组;如果核心和( )结合,表示核心是函数。

  3,分析三个符号。

    int *p[5];  核心是p,p首先和[ ] 结合(优先级决定),表示核心是一个数组,数组有五个元素,数组中的元素都是 int *类型的也就是指针,这些指针指向的元素类型是int ,整个符号就是一个指针数组。

    int (*p)[5]; 核心是p,首先和*结合,表示核心是一个指针,这个指针的类型是 int (*)[5]类型,即这个指针指向一个数组,这个数组中有五个int型的元素,整个符号是数组指针。

    int *(p[5]); 核心是p,首先和[ ]结合,表示核心是一个数组,数组有五个元素,数组中的元素都是int *类型也就是指针,这些指针指向的元素类型是int,整个符号是一个指针数组。

三,分析符号含义三步曲

  1,找核心。2,找结合。3,继续向外扩展结合。

  按照这三步走再复杂的定义也能分析出来。

  比如说一个复杂的:char * (*PType[5])(char *,const char *)。首先核心是PType,先和 [ ] 结合,表示PType是一个数组,这个数组里有五个元素,再和 * 结合,表示这个数组的元素是指针,再和( )结合,表示指针的类型是函数,函数有两个形参,返回值是char *。整体来说,这个符号是一个函数指针数组。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程界的小学生、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值