C/C++ 容易混淆的指针声明总结

指针数组

int *p[3];

首先从p处开始,先于[ ] 结合,因为其优先级高(在C中,[]属于后缀运算符与( ) 同为最高优先级),所以p是一个数组。然后再与 * 结合,说明数组里的元素是指针类型。之后再与 int 结合,说明指针所指向的类型是整型的,所以 p 是一个指向 int 的指针数组。

数组指针

int (*p)[3];

首先从p处开始,先于*结合,说明p是一个指针。然后再与 [ ] 结合,说明指针所指向的内容是一个数组。之后再与 int 结合,说明数组里的元素是整型的,大小是3,所以 p 是一个指向大小为3的int数组的指针。

函数声明

int p(int);

从 p 处起,先与 ( ) 结合,说明 p 是一个函数。然后进入 ( ) 里分析,说明该函数有一个整型变量的参数,之后再与外面的 int 结合,说明函数的返回值是一个整型数据。

函数指针

int (*p)(int);

从 p 处开始,先与指针结合,说明 p 是一个指针。然后与 () 结合,说明指针指向的是一个函数。之后再与 () 里的 int 结合,说明函数有一个 int 型的参数,再与最外层的 int 结合,说明函数的返回类型是整型,所以 p 是一个指向有整型参数且返回类型为整型的函数的指针。

结合在一起的复杂声明

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

从 p 开始,先与 () 结合,说明 p 是一个函数,然后进入 () 里面,与 int 结合,说明函数有一个整型变量参数。然后再与外面的 * 结合,说明函数返回的是一个指针;之后与 [ ] 结合,说明返回的指针指向的是一个数组。接着再与*结合,说明数组里的元素是指针,最后再与 int 结合,说明指针指向的内容是整型数据。

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

相关推荐

  1. C/C++ 容易混淆指针声明总结

    2024-01-19 18:20:01       33 阅读
  2. 复杂指针声明

    2024-01-19 18:20:01       35 阅读
  3. CI/CD容器编排结合

    2024-01-19 18:20:01       11 阅读
  4. CI/CD总结

    2024-01-19 18:20:01       37 阅读
  5. 函数指针一点总结

    2024-01-19 18:20:01       13 阅读
  6. 【conda】容易遗忘命令使用总结

    2024-01-19 18:20:01       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-19 18:20:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-19 18:20:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-19 18:20:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-19 18:20:01       18 阅读

热门阅读

  1. C语言的整形提升规则

    2024-01-19 18:20:01       33 阅读
  2. [力扣 Hot100]Day8 无重复字符的最长子串

    2024-01-19 18:20:01       37 阅读
  3. 【力扣每日一题】力扣2171拿出最少数目的魔法豆

    2024-01-19 18:20:01       37 阅读
  4. leetcode—和为K的子数组

    2024-01-19 18:20:01       35 阅读
  5. 问题解决方案

    2024-01-19 18:20:01       37 阅读
  6. npm install 太慢?解决方法

    2024-01-19 18:20:01       34 阅读
  7. git merge 和 git pull的区别是什么

    2024-01-19 18:20:01       27 阅读
  8. Github Copilot 的使用方法和快捷键

    2024-01-19 18:20:01       45 阅读
  9. 公司OA办公系统使用阿里云服务器怎么选配置?

    2024-01-19 18:20:01       39 阅读
  10. Linux常用命令

    2024-01-19 18:20:01       27 阅读
  11. Spring Boot3 系列:Spring Boot3 跨域配置 Cors

    2024-01-19 18:20:01       23 阅读