C语言中如何理解指向数组的指针及其应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2385个文字,预计阅读时间需要10分钟。
数组(Array)是一系列具有相同类型的数据集合,每个数据被称为一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用一块连续的内存空间。例如:int arr[]={99, ...}。
int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示:
定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第 0 个元素。在C语言中,我们将第 0 个元素的地址称为数组的首地址。以上面的数组为例,下图是 arr 的指向:
数组名的本意是表示整个数组,也就是表示多份数据的集合,但在使用过程中经常会转换为指向数组第 0 个元素的指针,所以上面使用了“认为”一词,表示数组名和数组首地址并不总是等价。初学者可以暂时忽略这个细节,把数组名当做指向第 0 个元素的指针使用即可,我们将在VIP教程《数组和指针绝不等价,数组是另外一种类型》和《数组到底在什么时候会转换为指针》中再深入讨论这一细节。
本文共计2385个文字,预计阅读时间需要10分钟。
数组(Array)是一系列具有相同类型的数据集合,每个数据被称为一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用一块连续的内存空间。例如:int arr[]={99, ...}。
int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示:
定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第 0 个元素。在C语言中,我们将第 0 个元素的地址称为数组的首地址。以上面的数组为例,下图是 arr 的指向:
数组名的本意是表示整个数组,也就是表示多份数据的集合,但在使用过程中经常会转换为指向数组第 0 个元素的指针,所以上面使用了“认为”一词,表示数组名和数组首地址并不总是等价。初学者可以暂时忽略这个细节,把数组名当做指向第 0 个元素的指针使用即可,我们将在VIP教程《数组和指针绝不等价,数组是另外一种类型》和《数组到底在什么时候会转换为指针》中再深入讨论这一细节。

