• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

对于C语言复杂指针类型的分析

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

转载自:http://www.slyar.com/blog/complicated-point-type.html

int p;

p是一个普通的整型变量。

int *p;

1、p与*结合,说明p是一个指针。
2、*p与int结合,说明指针所指向的内容的类型是整型的。

所以p是一个返回整型数据的指针。

int p[5];

1、p与[]结合,说明p是一个数组。
2、p[5]与int结合,说明数组里的元素是整型的。

所以p是一个由整型数据组成的数组。

int *p[5];

1、p与[]结合(因为其优先级比*高),说明p是一个数组。
2、p[5]与*结合,说明数组里的元素是指针类型。
3、*p[5]与int结合, 说明指针所指向的内容的类型是整型的。

所以p是一个由返回整型数据的指针所组成的数组。

int (*p)[5];

1、p与*结合,说明p是一个指针。
2、*p与[]结合,说明指针所指向的内容是一个数组。
3、(*p)[5]与int结合,说明数组里的元素是整型的。

所以p是一个指向由整型数据组成的数组的指针。

int **p;

1、p与*结合,说明p是一个指针。
2、*p与*结合,说明指针所指向的元素是指针。
3、**p与int结合,说明指针所指向的内容的类型是整型的。

所以p是一个指向整型指针的指针。

int p(int);

1、p与()结合,说明p是一个函数。
2、p()与()里的int结合,说明函数有一个int型的参数。
3、p(int)与外面的int结合,说明函数的返回类型是整型。

所以p是一个有一个整型参数且返回类型为整型的函数。

int (*p)(int);

1、p与指针结合,说明p是一个指针。
2、*p与()结合,说明指针指向的是一个函数。
3、(*p)()与()里的int结合,说明函数有一个int型的参数。
4、(*p)(int)与最外层的int结合,说明函数的返回类型是整型。

所以p是一个指向有一个整型参数且返回类型为整型的函数的指针。

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

1、从p处开始,先与()结合,说明p是一个函数.
2、p()与()里的int结合,说明函数有一个int型的参数。
3、p(int)与外面的*结合,说明函数返回的是一个指针。
4、(*p(int))与[]结合,说明返回的指针指向的是一个数组。
5、(*p(int))[5]与*结合,说明数组里的元素是指针。
6、*(*p(int))[5]与int结合,说明指针所指向的内容的类型是整型的。

所以p是一个参数为一个整数据且返回一个指向由整型指针变量组成的数组的指针变量的函数。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap