当前位置: 首页 > article >正文

【C/C++语言系列】指针数组、数组指针、函数声明和函数指针区别

以前学习时经常分不清以下几个类型:

  1. int* p[10];
  2. int(*p)[10];
  3. int* p(int *)
  4. int(*p)(int *)

接下来就介绍下怎么区分它们:

到底是指针还是数组?

首先看变量名p与‘’结合还是[]结合 ,在C语言中,运算符的优先级为() == [] > *,结合性都是从左到右。所以int p[10]是一个数组,因为p先于[]结合,而int(*p) [10]是一个指针。

int* p[10]:指针数组

p是一个数组;
数组中存的10个数都是int*类型的。

int(*p)[10]:数组指针

p是一个指针;
指向一个大小为10的int数组,该数组名未知。

函数声明还是函数指针?

同上面一样,依然看优先级。

int* p(int *):函数声明

函数名p,返回值类型int*,参数类型int*

int(*p)(int*):函数指针

p是一个指针,指向一个匿名函数,
该函数返回值类型int,参数类型int*

参考连接


http://www.kler.cn/news/309575.html

相关文章:

  • Git 中的refs
  • Python异常处理:自定义异常②
  • 智慧体育场馆:科技引领未来运动体验
  • 【C语言进阶】动态内存与柔性数组:C语言开发者必须知道的陷阱与技巧
  • JAVA学习笔记01-变量的初始化
  • Medieval Fantasy Town Village Environment for RPG FPS 中世纪城镇环境
  • 时序数据库 TDengine 的入门体验和操作记录
  • 某oa命令执行漏洞挖掘思路
  • 网络安全。
  • 数学建模笔记——动态规划
  • Vue3中集成高德地图并实现平移缩放功能
  • 如何搭建一个ip池用来做数据抓取用
  • MFC工控项目实例之十四模拟量信号名称从文件读写
  • uniapp上使用document方案之renderjs
  • 回收站数据怎么恢复?用这 5 种方法,准能恢复回收站数据!
  • 基于SpringBoot+定时任务实现地图上绘制车辆实时运动轨迹图
  • Pr:Adobe SRT
  • React中forwardRef()的作用?
  • python多进程程序设计 之二
  • 基于深度学习的文本引导的图像编辑
  • 【我的 PWN 学习手札】Largebin Attack(< glibc-2.30)
  • linux-Shell 编程-Shell 脚本基础
  • lvs命令介绍
  • k8s部署jumpserver4.0.2
  • Redis(redis基础,SpringCache,SpringDataRedis)
  • golang学习笔记24——golang微服务中配置管理问题的深度剖析
  • Unity3D 游戏数据本地化存储与管理详解
  • 深度智能:迈向高级时代的人工智能
  • ELK 日志分析
  • 十五、谷粒商城- 报错汇总