C语言指针的复杂类型说明


我们经常遇到一些复杂的指针类型说明,很多初学者可能感觉有点蒙,其实按照一个法则来分析,就会觉得一点都不难

法则:从变量名开始,按照结合的优先级,一步一步来分析

说明:1、[]的优先级大于*

            2、()的优先级大于指针

原则:1、指针与A结合,则指向所指向的内容是A

             2、数组与A结合,则数组中的每一个元素的数据类型都是A

             3、函数的标准形式为:函数返回值类型  函数名(参数列表)


int p  //这是一个普通的整形变量

int *p    //这是一个指针,指针指向的内容为整型数据

int p[3]   //这是一个普通的数组,有3个元素,每个元素的数据都是整型

int *p[3]    //p先于[]结合,说明这是一个数组,里面有3个元素,再与*结合,说明每个元素的类型都是指针,再与int 结合,说明每个指针都指向int 型

int (*p)[3]   // p先和*结合,说明是一个指针,然后与[]结合,指针指向的内容是一个数组,该数组有3个元素,再与int结合,说明每个元素都是int型

int **p      //是一个普通的二级指针

int p(int )  //一个普通的函数p,返回值为int型,函数参数为int型

int (*p)(int)   //*p是一个指针,再与()结合,说明指针指向一个函数,再看()中的int ,说明该函数参数为int型,再结合最左边的int,函数的返回值也是int型

int *(*p(int))[3]   //  p先和()结合,说明p是一个函数,该函数参数为int型,再和*结合,说明该函数返回值是指针,再跟[]结合,说明该指针指向的是一个数组,该数组有3个元                                  // 素,再与*结合,每个元素的类型都是指针,然后每个指针都指向int型。



总结:请按照我开始说的那样进行描述,可以多看几遍,应该就可以理解了!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值