对于C语言复杂指针类型的分析
转载自: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是一个参数为一个整数据且返回一个指向由整型指针变量组成的数组的指针变量的函数。
最新文章
- 【腾讯Bugly干货分享】移动App入侵与逆向破解技术-iOS篇
- arcgis api for js入门开发系列一arcgis api离线部署
- lombok 简化java代码注解
- NC nc5.x报表设置合计行是否显示
- (原创)关于SQL Server 2005 的自动远程数据库备份
- 最近使用ajaxFileUpload和Jcrop来实现图片上传和截图,出现一个图片无法更换的问题
- jQuery基础DOM和CSS操作
- POJ2686 Traveling by Stagecoach(状压DP+SPFA)
- SKScene类
- 关于解决Oracle登录:ora-12154:tns:无法解析指定的连接标识符
- Python中range的用法
- js的function中的指向自身的属性
- mongodb中分页显示数据集的学习
- 新手如何快速入门Python
- Java进阶(五十一)必须记住的Myeclipse快捷键
- 【hdu2000】ASCII码排序
- python3:实现字符串的全排列(无重复字符)
- es简单介绍及使用注意事项
- 三种常用的MySQL建表语句
- apache 中 ServerAlias让多个域名绑定到同一空间