首页 置换 选车 估价 问答 生活 经销商 车管所 汽车资讯 汽车销量 车牌查询 今日油价 天气预报
您的位置: 首页 > 生活 > 其他 > c语言指针用法的讲解(C语言中的指针是初学者的噩梦)
c语言指针用法的讲解(C语言中的指针是初学者的噩梦)
更新时间:2024-07-05 17:04:06

上两篇文章给大家介绍了一下内存的概念和内存管理,打下了这些基础之后今天给大家来讲讲指针的基本知识。

指针是C语言的精髓同时也是学习者的“噩梦”,在实际嵌入式开发当中每一天都会和指针打交道。其实指针也只是一个变量而已,只不过这个变量用来存储的是一个地址。

C语言指针的基本知识

指针的定义:

c语言指针用法的讲解(C语言中的指针是初学者的噩梦)1

指针的赋值:

c语言指针用法的讲解(C语言中的指针是初学者的噩梦)2

指针的引用:

c语言指针用法的讲解(C语言中的指针是初学者的噩梦)3

指针的尺寸:

  • 指针的尺寸与指针的类型没有任何关系
  • 指针用来存放的是一个内存的地址, 因此他的大小就应该是该计算机中内存地址的大小,32位系统中为4个字节、64位系统中为8个字节。

c语言指针用法的讲解(C语言中的指针是初学者的噩梦)4

野指针:

顾名思义,野指针就是比较“野”的一种指针。是指向一个不确定的内存的指针,这种指针对我们系统而言是非常危险的。

危害:

      • 情节不严重的情况下你有可能可以正常使用,但是一般情况下会出现 段错误,导致程序崩溃
      • 情节严重的,有可能导致系统崩溃

c语言指针用法的讲解(C语言中的指针是初学者的噩梦)5

产生原因:

      • 定义的时候没有给他初始化
      • 他所指向的内存被释放了,系统已经回收了这个内存
      • 指针越界

如何解决:

      • 定义的时候记得给他初始化(让它指向一块确定的内存)
      • 被释放\ free() 之后的指针应该不再使用(释放之后一般让它指向NULL)
      • 确定好内存的大小不要越界
空指针:

空指针是一个保存了零地址的一个指针,也就零地址指针。

在某一些情况下我们定义了一个指针但是暂时不知道该指向哪里,想等待后面的程序运行时候再分配地址,又不想让野指针出现危害系统的安全,可以让该指针先指向一个相对安全的位置。一般会让它指向0x000000000 这个地址。

c语言指针用法的讲解(C语言中的指针是初学者的噩梦)6

指针运算:

指针的运算就是在当前指针的地址上增加或减小N个字节,只能加减,乘除没有意义。

指针的加法: p 1 则表示在p目前指向地址值上增加1个单位(指针的类型)

指针的减法: p-1 则表示在p目前指向地址值上下减1个单位(指针的类型)

c语言指针用法的讲解(C语言中的指针是初学者的噩梦)7

好了,今天给大家梳理了一遍指针的基本知识,下一篇会带着大家剖析指针与数组之间的爱恨情仇。

我是森哥,后面会继续给大家分享嵌入式和C语言知识,喜欢的朋友和嵌入式学习者可以关注我一起进步!

,
相关推荐RECOMMEND
勤读不辍的辍什么含义
勤读不辍:辍,停止,终止。即一直坚持读书。勤读不辍:勤奋学习,勤奋读书,没有停下来。形容一个人读书很努力。例句:辍车小缺复合者。《说文》君子不为小人之匈匈也辍行。《荀子天论》陈涉少时,尝与人佣耕,辍耕...
抢渡金沙江的故事
抢渡金沙江的故事:1935年5月3日晚,中央纵队先遣队干部团在总参谋长刘伯承指挥下,占领金沙江南岸皎平渡口,缴获停留在江上的两条渡船,并偷渡成功,歼灭国民党川康边防军1个排和江防大队一部,占领北岸渡口...
开两会是什么意思
两会是对自1959年以来历年召开的中华人民共和国全国人民代表大会和中国人民政治协商会议的统称。由于两场会议会期基本重合,而且对于国家运作的重要程度都非常的高,故简称做“两会”。从省级地方到中央,各地的...
新鲜银耳怎么保存
新鲜的银耳保存方法有:干银耳保存:干银耳应该放在干燥、阴凉、没有阳光直射的地方密封保存,比如玻璃罐之类的。这样可以隔离掉空气中的水分,不让水分碰到干银耳,这样干银耳就不会发黄、发霉了。由于雪耳质地较脆...
从天安门广场到西单怎么走
1、步行方式:从天安门广场正阳门出发,通过地下通道,沿西交民巷向西行走约1、3千米,然后沿北新华街向北行走约0.7千米,再沿西长安街向西行走约0.3千米到达西单地铁站,全程约2、3千米,用时34分钟。...
监控视频抗干扰器使用方法
视频抗干扰器的使用方法:1、将发射器的视频输入端与摄像机的视频输出端用电缆或公对公的BNC转接头连接;2、将传输电缆源端与发射器的射频输出端连接;3、将摄像机和发射器上电;4、将传输电缆另一端与接收器...