c语言数组比较的函数,浅谈c语言指针与数组&函数

  • Post author:
  • Post category:其他


C语言因为有了指针所以变得十分的灵活,可以说它是C语言的精髓,指针是比较难理解的概念,记得一开始学的时候我一直不能理解这种特殊的数据类型,特别是它和数组混在一起,变得更加的抽象了。后来找了很多资料之后,慢慢的理解了一点。

前几天一个朋友又问了一个关于指针数组的问题,感觉以前学的又忘了很多,毕竟很长世间没用C写东西了,这里做下备忘,也希望对有相同疑惑的朋友有一些借鉴,当然,说的有不对的地方欢迎指出,毕竟都是靠看各种资料自学的的,所以可能有些地方的理解有不准确的地方!

一、什么是指针

PC中内存是由许多储存单元组成的,其中每一个单元用一个唯一的地址标识,计算机的地址从0开始,最大值取决于内存量。在C语言中,基本的变量类型有int、float、double、char…几种,除此之外还有数组、结构体、联合等复杂的变量类型。

这些变量在内存中都有相应的地址来储存它。在c中声明一个变量时,编译器会把变量的地址和变量名关联起来。而指针是一种特殊的数据类型(不是c的基本数据类型),它就是用来存放这些变量的地址的。

二、指针就是地址?

前面说过指针是一种数据类型,但是现在国内大部分的教材认为指针就是地址,还有的说“指针”是指地址,是常量。那指针到底是不是地址呢?笔者有幸拜读过一本叫《再再论指针》的书,里面指出了这些教材是错的,而且在c的官方文档找出证据。

个人认为后者说服力要大一点,不多很多概念是人为约定的,所以每个人的理解都有不同的地方,这里只是说一下。毕竟在考c语言的时候,如果有一个选项说指针就是地址,你还是得认为他是对的!

三、指针和指针变量

有些人一直分不清指针和指针变量,这里也说一下吧!指针是指数据类型,而指针变量是指针类型的变量,这里可以用类比的方法来理解。

假如我们声明一个int类型的变量int a;

这里的指针可以类比为int,而指针变量就相当于a。它是一个变量。

最后修改于

2021-04-28