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

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

C语言指针的基本知识

指针的定义:

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

指针的赋值:

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

指针的引用:

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

指针的尺寸:

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

野指针:

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

危害:

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

产生原因:

如何解决:

空指针:

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

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

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

指针运算:

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

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

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

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

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

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

,