注解:函数指针,指针函数,指针数组....以及如何根据名称写出数组和指针
来源:互联网 发布:冻干粉去红血丝知乎 编辑:程序博客网 时间:2024/06/11 02:33
在讲指针数组,数组指针等等,先说一个关系:指针和数组没有关系
指针数组:是一个数组,那是一个什么样的数组呢?是一个存放指针的数组
举例:int *p[10];
char *p[10];
char **p[10];
数组指针:是一个指针,是个什么样的指针呢?是一个存放数组地址的指针
举例:int (*p)[10];
char (*p)[10];
那int *p[10]和int (*p)[10]有什么区别呢?
注意:首先得分清它们分别是什么,由上面可知它们分别是指针数组和数组指针。int p[10],根据运算优先级,[]运算级高于,p先和[10]结合,因此它是指针数组。而()操作符和[]优先级相等,从左向右进行运算,因此p先和()里的*结合,再和[]结合,就是数组指针了。
函数指针:根据上面的规律,一看名字就知道是指针,是一个存放函数地址的指针
看以下代码…
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void fun(void){}int main(){ int (*p)() = (void *)&fun; printf("%p\n", &fun); printf("%p\n", p); return 0;}
用函数指针指向函数地址,打印地址,结果相同
函数指针数组:顾名思义,它是一个数组,一个函数指针的数组,一个指向函数地址的指针的数组。
例子:int (*p[10])()
char (*p[10])()
指向函数指针数组的指针: 如上解释,写出的形式如:int (*(*p)[])()
个人建议书写类似指针或者数组的技巧:根据名字从左向右,内容从外向内写。
如:书写“指向函数指针数组的指针的数组”。
第一步:写函数,先写出()
第二步:加指针,*()
第三步:加数组,* [ ]() (因为[ ]优先级高于*,所以不必为[ ]加())
第四步:加指针,* (* )[ ] () (因为[ ]优先级高于,所以此处要在外加())
第五步:加数组,* ( *[ ])[ ] ()
第六步:加变量名,( * ( * p [ ])[ ]) ()
希望大家能多多看下最后这里,如果看懂这个,以后随便报名称,都可以写出来。
妈妈再也不用担心我的:指向函数指针数组的指针的数组的指针的数组的指针的….(后面随意发挥)
(* (* ( * ( *p )[ ]) [ ])[ ] ) ()
就酱,大功告成……
最后,欢迎评论区留言提问给我……
- 注解:函数指针,指针函数,指针数组....以及如何根据名称写出数组和指针
- 函数指针和指针函数以及函数指针数组
- 函数指针和指针函数以及函数指针数组
- 函数指针和指针函数以及函数指针数组
- 函数指针,指针数组和数组指针
- 数组指针,指针数组和函数指针
- C++ 数组指针 指针数组 以及 函数指针 指针函数
- 函数指针和指针函数 数组指针和指针数组
- 数组指针和指针数组,函数指针和指针函数
- 指针函数和函数指针、指针数组和数组指针
- 指针函数和函数指针、指针数组和数组指针
- 数组指针和指针数组 指针函数和函数指针
- 数组指针、 指针数组、函数指针、函数指针数组和指向函数指针数组的指针
- 简述指针数组 数组指针 函数指针 函数指针数组和函数指针数组的指针
- 数组指针和函数指针
- 指针,指针数组,数组指针,函数指针
- 指针函数、数组指针、函数指针、函数指针数组和指向函数指针数组的指针
- 函数指针指针数组
- 让“懒惰” Linux 运维工程师事半功倍的 10 个关键技巧!
- 201503-1 图像旋转 ccf
- 电路加法
- 冒泡排序
- ELK技术实战–了解Elk各组件 ELK技术实战-部署Elk 2.x平台 ELK Stack是软件集合Elasticsearch、Logstash、Kibana的简称,由这三个软件及其相关的组件可
- 注解:函数指针,指针函数,指针数组....以及如何根据名称写出数组和指针
- Centos7 定时任务
- Hadoop
- Spring基础入门AOP
- 大数据学习笔记(三)-Yarn
- 找出数组最大值
- Python实现图片滑动式验证识别
- DevOps,就是开发吃掉运维?
- HDU 2100 Lovekey(模拟26进制)