• int p; – 这是一个普通的整型变量
  • int *p; – 首先从 p 处开始,先与*结合,所以说明 p 是一个指针, 然后再与 int 结合, 说明指针所指向的内容的类型为int 型。所以 p 是一个返回整型数据的指针。
  • int p[3] – 首先从 p 处开始,先与[] 结合,说明 p 是一个数组, 然后与 int 结合, 说明数组里的元素是整型的,所以 p 是一个由整型数据组成的数组。
  • int *p[3]; – 首先从 p 处开始, 先与 [] 结合, 因为其优先级比 * 高,所以 p 是一个数组, 然后再与 * 结合,说明数组里的元素是指针类型, 然后再与 int 结合, 说明指针所指向的内容的类型是整型的, 所以 p是一个由返回整型数据的指针所组成的数组。
  • int (*p)[3]; – 首先从 p 处开始, 先与 * 结合,说明 p 是一个指针然后再与 []
    结合(与"()"这步可以忽略,只是为了改变优先级), 说明指针所指向的内容是一个数组, 然后再与int 结合,说明数组里的元素是整型的。所以 p 是一个指向由整型数据组成的数组的指针。
  • int **p; – 首先从 p 开始, 先与 * 结合, 说是 p 是一个指针, 然后再与 * 结合, 说明指针所指向的元素是指针,然后再与 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 是一个参数为一个整数据且返回一个指向由整型指针变量组成的数组的指针变量的函数。

【C语言指针】一些易混淆的定义相关推荐

  1. C语言中易混淆的标识符,C语言指针中易混淆的概念

    C语言指针中易混淆的概念 一.数组指针与指针数组的区别 考虑数组的指针的时候我们要同时考虑类型和维数这两个属性.换一句话,就是说一个数组排除在其中存储的数值,那么可以用类型和维数来位置表示他的种类. ...

  2. c语言指针编程易错点,C语言中指针的一些易错点!

    1.字符数组与字符串的使用 注意:数组名是指向数组首个元素的地址. 先看个例子: #include int main() { char *str = "hello"; int le ...

  3. c++指针总结(易混淆)

    一:指针的概念 指针是一个特殊的变量,里面存储的数值是内存里的一个地址.学好指针,重要的是搞清楚指针的四个方面的内容:指针的类型.指针所指向的类型.指针所指向的内存区.指针本身占据的内存区. 1. 如 ...

  4. 【C语言】易错题 and 易混淆知识

    C语言 易错题 and 易混淆知识 1. 以下关于指针的说法,正确的是( ) 2. 由多个源文件组成的C程序,经过**编辑.预处理.编译.链接**等阶段会生成最终的可执行程序.下面哪个阶段可以发现被调 ...

  5. c语言指针自定义函数,c语言函数指针定义,指针函数和函数指针的区别

    往往,我们一提到指针函数和函数指针的时候,就有很多人弄不懂.下面就由小编详细为大家介绍C语言中函数指针,指针函数和函数指针之间的区别. c语言指针函数定义: 函数指针是指向函数的指针变量. 因此&qu ...

  6. 易语言多级指针读取_C语言指针难吗?纸老虎而已,纯干货讲解(附代码)

    作者:21IC网络整理,排版:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方 ...

  7. c语言指针易错情况,C语言/C++从入门到精通之指针易错点总结

    指针是C语言的灵魂,所以学好指针很关键,本篇主要介绍了C语言/C++从入门到精通之指针易错点总结,通过具体的内容向大家展现,希望对大家C语言/C++的学习有所帮助. 学习C语言肯定会碰到指针,指针是C ...

  8. c语言定义node类型指针,C语言指针的概念

    在计算机中,所有的数据都是存放在存储器中的.一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细的介绍.为了正确地访问 ...

  9. C语言一级指针(char *)易错模型分析

    C语言一级指针char *易错模型分析 char *(字符串)做函数参数出错模型分析 越界 不断修改指针变量的值 你向外面传递什么 重复的错误何时休 char *(字符串)做函数参数出错模型分析 建立 ...

最新文章

  1. Web前端工程师工作前 VS 工作后
  2. Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库
  3. 格力机器人图解_格力工业机器人:是时候展示真正的实力了
  4. python函数式编程-匿名函数
  5. 指针(pointers)和引用(references)区别
  6. mysql数据库如何新建查询_数据库新建查询
  7. 小波包8层分解与重构MATLAB代码,谐波小波包分解与重构程序谁有呢?
  8. 极速信使【IOS最强大的局域网聊天软件】
  9. 高频功率放大器的设计实现
  10. 抖音-相关分析和理解
  11. JAVA_Utils_手机号码和座机号码的格式校验
  12. 【经典算法题-2】费式数列(Fibonacci数列)
  13. 数据统计分析——常用统计检验方法
  14. 回顾2017、展望2018
  15. 如何判断一个文件是否是jpeg格式?
  16. 多线程设计模式-主仆模式
  17. 绝地求生大逃杀常用英语
  18. 如何伪装成一个服务端开发(五)
  19. 过某交友软件frida反调试
  20. cve-2021-22205复现

热门文章

  1. Java实现 蓝桥杯VIP 算法训练 数对
  2. 关于云计算中可信计算的说明
  3. 天翼弹性云服务器的SSH登录与文件上传
  4. 我是农村的,我有一个进城的梦
  5. 解决Your branch is ahead of ‘origin/master‘ by N commits问题
  6. 令人担忧的趋势:科技崇拜与人文失落
  7. 教你解决Taro微信小程序中使用Echarts体积过大的问题
  8. crm系统如何帮助企业提升客户满意度?
  9. Python:ifwhile
  10. 2021年互联网公司的获客成本概览