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

嵌入式八股文之深入理解 C语言中的指针相关概念

在 C 编程中,指针是一个强大且重要的概念,它允许我们直接操作内存地址。然而,指针相关的概念众多,如函数指针、指针函数、指针常量、常量指针、数组指针、指针数组以及野指针,这些概念容易混淆,却又在不同的编程场景中发挥着关键作用。本文将深入剖析这些概念,帮助读者更好地理解和运用它们。

一、函数指针

函数指针是指向函数的指针变量。在 C 中,函数在内存中也占据一定的地址,函数指针可以存储这个地址。通过函数指针,我们可以像调用普通函数一样调用它所指向的函数。函数指针的声明格式为:返回类型 (*指针变量名)(参数列表)。例如,int (*funcPtr)(int, int)表示funcPtr是一个指向函数的指针,该函数接受两个int类型的参数并返回一个int类型的值。函数指针常用于回调函数,当需要根据不同的条件执行不同的函数时,函数指针就能派上用场。

速记:函数指针的本质在于它是一个指针,所以记清楚它的格式即可

二、指针函数

指针函数与函数指针恰好相反,它是一个返回指针的函数。其声明格式为:返回类型* 函数名(参数列表)。例如,int* func(int a, int b)表示func是一个指针函数,它接受两个int类型的参数,返回一个int类型的指针。指针函数常用于需要返回动态分配内存的情况,比如在函数中创建一个数组并返回指向该数组首元素的指针。

速记:指针函数的本质在于他是一个函数,所以指针函数就是返回值为指针的一个函数

三、指针常量

指针常量是指指针本身的值是一个常量,即一旦初始化后,指针就不能再指向其他地址。其声明格式为:类型* const


http://www.kler.cn/a/527791.html

相关文章:

  • 网站结构优化:加速搜索引擎收录的关键
  • STM32CubeMX6.13.0打开后不显示界面,但是任务管理器显示该程序正在运行
  • 04树 + 堆 + 优先队列 + 图(D1_树(D1_基本介绍))
  • 【huawei】云计算的备份和容灾
  • [250125] DeepSeek 发布开源大模型 R1,性能比肩 OpenAI o1 | 希捷推出高达 36TB 的硬盘
  • Java 大视界 -- Java 大数据在量子通信安全中的应用探索(69)
  • 04树 + 堆 + 优先队列 + 图(D1_树(D2_二叉树(BT)(D1_基础学习)))
  • 笔记:电机及控制器的功率测量是怎么进行的?
  • 服务器架构设计大全及其优缺点概述
  • 长尾关键词在SEO提升网站流量中的关键角色与应用技巧分析
  • AVL树介绍
  • Java设计模式:行为型模式→观察者模式
  • LeetCode-180. 连续出现的数字
  • 吉首市城区地图政府附近1公里范围高清矢量pdf\cdr\ai内容测评
  • TCP三次握手和四次挥手面试题
  • WordPress eventon-lite插件存在未授权信息泄露漏洞(CVE-2024-0235)
  • DFS(深度优先搜索)与回溯算法详解
  • LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略
  • 芯片AI深度实战:给vim装上AI
  • Vue 3 30天精进之旅:Day 10 - Vue Router
  • 计算机毕业设计Python+CNN卷积神经网络考研院校推荐系统 考研分数线预测 考研推荐系统 考研爬虫 考研大数据 Hadoop 大数据毕设 机器学习
  • LeetCode--84. 柱状图中最大的矩形【单调栈】
  • OpenCV:闭运算
  • C++11(中)
  • 5 长度和距离计算模块(length.rs)
  • 《苍穹外卖》项目学习记录-Day7导入地址簿模块功能代码