指针和数组
C 语言中指针和数组这两个概念密不可分,以至于如果没有理解其中一个概念,就无法彻底理解另一个概念。
数组
很基础的一些知识点我就不重复了。关于数组,需要注意的有两个点:
- C 语言中只有一维数组,而且编译期间就要知道数组的精确大小。数组的元素可以是任何类型的对象,当然也包含了数组,这也就是多维数组。
- 对于一个数组,我们其实只能干两件事情:确定数组的大小、获取指向该数组下标为 0 的元素的指针。看到这话你是不是要反驳我了:不对呀,你写博客写糊涂了吧?我还可以
arr[1]
的操作呀。其实[]
操作的本质是通过指针来实现的。比如arr[i] = 1
其实上是*(arr + i) = 1
,这里的arr
就是指向该数组下标为 0 的元素的指针。