“指针数组”和“数组指针”的区别、函数指针定义及引用
来源:互联网 发布:java识别图片文字 编辑:程序博客网 时间:2024/05/16 10:32
1. 以int *p[5],Int (*p)[5]为例子来分析。 首先要理解中文层面上来理解指针数组、数组的指针。
先分析Int *p[5], 变量p为核心,然后判断* 和[5]的优先级哪个高,谁的优先级高,p就与谁先结合,从C语言的符号优先级表可知(优先级表读者可自行百度),[]的优先级高于*,所以p与[]先结合,故p[5]为数组,再*与p[5]结合,解析为数组p 有5个变量,且每个变量的类型为指针类型,接着*p[5]再与int结合,整体解析为数组p 有5个变量,且每个变量的类型为指针类型,指针指向的类型为int,这就是我们说的指针数组。
再分析Int (*p)[5],同样的解析方式: 由里向外一层一层的解析。 由于括号的原因,(*p)中的p强制先与*结合,因此我们可以判断变量p为指针变量,指向的是一个数组,该数组有5个变量,每个变量的类型是int 。这就是我们所说的数组指针。
2.我们通过数组指针延伸到函数指针。
首先我们定义一个简单的函数指针便于大家理解: void (*p)(void)。怎么理解这种定义呢? 跟上述的方法一样,首先p因为()的原因强制先*结合,则变量p为指针变量,指向的是一个输入参数为void ,返回类型void 的一个函数(为什么是函数呢?在c语言中规定指针后面跟在的()为函数指针)。
3.应用(为了方便,我直接在kile+ 软件仿真+ 串口打印结果),具体如下:
PS:第一张定义了一个func1函数,在函数中打印 function pointer testing
第二张定义一个函数指针,引用strcpy复制字符串函数,将复制后的结果打印。
阅读全文
0 0
- “指针数组”和“数组指针”的区别、函数指针定义及引用
- 指针数组的定义和引用
- 指针数组的定义和引用
- 指针数组、数组指针、指针函数、函数指针的区别
- 指针数组 数组指针 指针函数 函数指针的区别
- 指针,指针函数,指针数组的区别
- 引用和指针的区别,数组和指针的区别
- 数组指针、 指针数组、函数指针、函数指针数组和指向函数指针数组的指针
- 简述指针数组 数组指针 函数指针 函数指针数组和函数指针数组的指针
- 指针数组和数组指针的区别&指针函数和函数指针的区别
- 指针数组,数组指针,指针函数,函数指针的区别及类型间的转换
- 数组指针和指针数组的区别、指针函数与函数指针的区别
- 数组指针及指针数组的区别
- 数组及数组和指针的区别
- 指针函数、数组指针、函数指针、函数指针数组和指向函数指针数组的指针
- 理解数组,结构 ,函数指针,指针函数,数组指针,指针数组,结构指针的定义和实现
- 一个复杂的声明,包含数组指针,指针数组,函数指针和指针函数的区别
- 指针数组和数组指针的区别以及main函数
- @Component, @Repository, @Service的区别
- event 和 window.event
- PropertiesFactoryBean PropertyPlaceholderConfigurer 区别
- 浏览器发送web请求之DNS域名解析过程
- oracle用户名密码过期
- “指针数组”和“数组指针”的区别、函数指针定义及引用
- java netty服务器简单例子
- python 装饰器
- 51Nod-1835-完全图
- 【西西学FPGA】Ubuntu环境下的Vivado使用及petalinux总结
- 基于SpringBoot的Mybatis-Plus插件整合
- c语言处理字符中的空格 函数
- 编程,初来乍到,多多关照。
- const修饰类成员和类对象