一、使用指针好处

(1)能够为调用函数灵活的修改实参变量的值

(2)支持动态内存分配,能够方便的实现动态的数据结构(如二叉树和链表)

(3)可以提高某些程序的效率

(4)实现缓冲方式的文件存取

二、指针是地址

(1)技术上,任何类型的指针都可以指向内存的任何位置,但是指针的操作都是基于类型的

(2)指针的操作是基于指针的基类型而执行的,尽管在技术上指针可以指向对象的其他类型,但指针始终认为它是指向基类型的对象,指针操作受指针类型而不是它所指向的对象类型的支配。

三、指针表达式

1、涉及指针的表达式符合其他c表达式的规则

(1)printf("%p",···);

(2)指针转换

void*型,用来说明基类型未知的指针,它允许函数指定参数,此参数可以接受任何类型指针变量而不必报告类型失配

当内存寓意不清时,也常用于指原始内存

2、指针算术:只可以进行加法和减法操作

(1)指针与整数的加、减法,求指针偏移后的地址

(2)从一个指针减去另一个指针,求出指针偏移量

3、指针比较

主要用于两个或多个指针指向共同对象的情况

四、初始化指针

1、非静态局部指针已声明但未赋值前,其值不确定

2、全局和静态局部指针自动初始化为NULL

3、赋值前使用指针,不仅可能导致瘫痪,还有可能使os奔溃

4、习惯用法:对于当前没有指向合法的内存空间的指针,为其赋值NULL

五、函数指针

void process (char *a,char *b,int(* apple)(const char*,const char*));

其中,int(* apple)(const char*,const char*)就是一个函数指针,传入的是这个函数指针的首地址

在工作中常需要向过程传入任意函数,有时需要使用函数指针构成的数组,如在接受程序运行时,常需要根据语句调用各种函数。此时,用函数指针构成的数组取代大型switch语句是非常方便的,由数组下表实施调用。

尚观嵌入式c语言编程进阶笔记——3.指针相关推荐

  1. c语言指针尚观嵌入式,C语言-指针

    本文目录 •直接引用 •一.什么是指针? •二.指针的定义 •三.指针的初始化 •四.指针运算符 •五.指针的用途举例 •六.关于指针的疑问 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针 ...

  2. 尚观嵌入式C语言学习

    第10节 1.for(;n>0;n–) 2.注释: #if 0 #endif

  3. 【笔记】嵌入式C语言随堂笔记

    喏,你们要的嵌入式C语言随堂笔记,丰富度应该要比老师自己记录的高一些.但是机酱的废话一样很多哦! 这个笔记是自己一个字一个字手打的,话说打个原创图个慰藉没问题的吧=.= 而且那时候很菜,知道就好不许说 ...

  4. Shell 编程进阶笔记

    这几篇博文主要记录博主的Linux 学习之路,用作以后回顾和参考.大家可以选择略过也可以作参考. (一)Linux 初步笔记 (二)Linux 进阶笔记(一) (三)Linux 进阶笔记(二) (四) ...

  5. c语言中指针往内存写值,C语言编程常见问题解答之指针和内存分配

    指针为C语言编程提供了强大的支持--如果你能正确而灵活地利用指针,你就可以直接切入问题的核心,或者将程序分割成一个个片断.一个很好地利用了指针的程序会非常高效.简洁和精致. 利用指针你可以将数据写入内 ...

  6. 嵌入式C语言编程课件,嵌入式系统C语言编程基础PPT课件

    <嵌入式系统C语言编程基础PPT课件>由会员分享,可在线阅读,更多相关<嵌入式系统C语言编程基础PPT课件(81页珍藏版)>请在人人文库网上搜索. 1.嵌入式系统C语言编程基础 ...

  7. 嵌入式C语言编程规范

    前言 代码首先是给人看的,其次才是给机器执行的,因此一般情况下代码的可读性优先于性能,只有确定性能是瓶颈时,才需要主动优化. 可读性高的代码应当是易于理解并且易于实现的,代码越长越难看懂,可能出错的地 ...

  8. Java概览(java语言编程艺术笔记)

    Java入门(1)--注释,面向对象,问题分解 注释 简单程序里广泛注释显然是愚蠢的,但是设计更大的,更复杂的程序是一种非常有用的记录. 面向对象 扩展类的实例同时也是现有类的实例. 这个怎么理解?虽 ...

  9. 嵌入式C语言编程——.h文件与.c文件

    .h文件与.c文件的关系 参考高手的程序时,发现别人写的严格的程序都带有一个"KEY.H",里面定义了.C文件里用到的自己写的函数,如Keyhit().Keyscan()等..H文 ...

最新文章

  1. 出现Too many connections错误,怎样解决?
  2. 男人必看的46条忠告
  3. 黑马程序员——java语言基础——组合,关联,聚合的区别
  4. 重磅!『2021科技研究前沿』发布,重点关注11大领域、171个热点和新兴前沿!...
  5. 如何提升软件交付效能?答案未必如你所想
  6. vs2005常用快捷键_包括代码自动缩进
  7. 5-8 第五天 微信 JS-SDK
  8. 手机万能摄像头ip搜索工具_一款 APP,130 多种功能,让你的手机秒变万能工具箱...
  9. 服务器安装虚拟声卡,虚拟声卡安装使用 虚拟声卡注意事项
  10. (4)华为ensp--RIP基本配置
  11. XTU OJ 三角形
  12. 团队建设(Team building)就是等于组织大家一起吃饭娱乐吗?
  13. 个性签名html,个性签名短句8个字唯美(精选70句)
  14. 十年一觉程设梦[完整版]
  15. 装修,一场没有硝烟的战争
  16. python培训班大概多少钱
  17. 【PA2013】【BZOJ3837】Filary
  18. 无线华为能连苹果不能连接到服务器,华为手机连苹果Mac,连不上?手把手教你...
  19. 认识并理顺元宇宙与产业互联网之间的关系,可以打开产业互联网的发展新症结
  20. VR,AR,MR的区别与联系

热门文章

  1. 【英语文学导读】课程论文《哈姆雷特》读后感
  2. 计算机专业跨考教育学有什么优势,跨专业考教育学的优势在哪里?
  3. 考勤助手——教务安排课程时序图
  4. AXI 基础第 2 讲 - 使用 AXI Verification IP (AXI VIP) 对 AXI 接口进行仿真
  5. foxbot机器人指令_机器人计划虽进展缓慢 Foxbot仍是富士康“秘密武器”
  6. Mac window文件文本内容乱码问题
  7. 链叨叨直播间丨Dimitra专注分散农业,为全球农户提供区块链生产力支持
  8. python类中的内置函数
  9. 为什么深绿系统不好用?
  10. 1024,我们程序员的节日