关于指针,有一些传统的错误认识,其中之一就是大家都认为指针很难,而且这种认识被一直传承下来。老师吓师兄,师兄吓师弟,师弟吓师妹。师妹早就不怕、不怕了!因为师妹根本就没打算学。
其实,指针的基本概念非常简单,它只是一个保存地址的变量而已!概念虽然不难,但是它的用法很繁琐。尤其是指针和数组的关系,更是需要一点细心。通常,C 语言的精神崇尚一个问题只有一种解决方法。但是指针这部分明显违背了这一方针,这一点在指针和数组部分表现得特别明显。另外,几乎所有的数据结构中都有指针的影子,一些很精巧、高效的算法中也能看到指针。这都会让人误认为指针很难。其实,指针本身并不难,如果能够抛开现象而看到本质,那么就会发现复杂用法的下面,指针的本质非常简单。
指针很灵活,这一点有点像双节棍,使用得好可以威力无比,使用得不好就会伤及自身。李小龙大家都很熟悉。他玩双节棍的时候,总是会发出尖叫,就是因为在开始练的时候,经常会一棍拍到自己的脸上,然后就是尖叫一声。后来虽然使用双节棍很熟练了,但是这种尖叫的习惯已经改不过来了。
同样,指针具有很大的能力,这种能力来源于:指针可以指向内存中任意一个地址,并且可以通过指针解引用修改那个地址上的值。这一点类似于大力水手手中的菠菜。能力大是好事,你可以搬起更大的石头,但是如果那块更大的石头砸在自己的脚上,你就会抱怨这种能力。为了避免把石头砸在自己的脚上,下面我会介绍一些使用指针的常见错误以及避免这些错误的基本方法。好了,朋友们,准备好了吗?下面让我们