C语言中的“二级指针”该如何理解.docxVIP

  • 0
  • 0
  • 约小于1千字
  • 约 2页
  • 2022-03-01 发布于浙江
  • 举报
PAGE PAGE 1 C语言中的“二级指针”该如何理解 现在再来看:int **pp = 就不难理解了,p 则是一个指向 int 型数据的指针, 再来重写 pp 的C语言定义,一切看起来就和一级指针没什么两样了。 所以假如读者是C语言初学者,不建议纠结一些“专业”的名词,比如“指向指针的指针”,“二级指针”,“多级指针”等,这些文绉绉的词经常会阻碍初学者理解C语言。事实上,多级指针的概念是递归的,读者的C语言基本功假如特别扎实,很简单就可以将多级指针写成“一级指针”。 现在读者应当知道如何分析C语言中的多级指针了,不过可能有些读者仍旧会有疑问:C语言的多级指针这么难理解,它有存在的意义吗? 答案当然是确定的,看了本专栏前面几节文章的读者应当能够发觉,借助于结构体和指针,C语言能够完成许多“不行思议”的工作,包括传递各种类型的数据。既然C语言中的指针类型也可看作是“一般数据类型”,那传递指针类型的数据时,C语言就需要指向指针类型数据的指针,也即所谓的“多级指针”。 假如读者觉得“指向指针类型数据的指针”费解,可联想其他一般数据类型,例如“指向int类型数据的指针”。上面的 swap() 函数并不能交换变量 x 和 y 的值,这一点即使是C语言初学者也明白。不过,假如对 swap() 函数稍作修改,答案就不一样了。 修改后的 swap() 的两个参数都是 int 指针,它能够交换 x 和 y 的值了,明显,int 型数据的例子很简单理解。到这里可能有些读者会迷惑,swap() 为什么没有交换 x 和 y 的值呢?它的参数是指针啊?其实,只要使用 IPTR 代替 int * 。swap() 函数需要做适当的修改 应当能够发觉,原来我们已经能够自然而然的使用C语言的二级指针了呀,蛤蛤。在处理指针类型数据交换时,指针的指针(所谓的多级指针)自然而言的就被使用了。

文档评论(0)

1亿VIP精品文档

相关文档