指针数组 数组指针

您所在的位置:网站首页 指向指针的数组和指向数组的指针 指针数组 数组指针

指针数组 数组指针

2023-06-04 10:28| 来源: 网络整理| 查看: 265

指针数组本质是数组 ,这个数组的每一个元素都是一个指针;存放的是指向 类型的的指针;   如:char* a[2]={ ”a","b"}; 数组存放的是指向“a”,“b”的地址。

数组指针本质是指针 , 是指向数组的指针; 这里要注意的是,是指向整个数组,而不是指向数组的第一个元素,否则就与二维数组名不是二级指针矛盾,数组指针大概是这样的:在这里插入图片描述

怎么理解这个呢? 首先:数组指针是指向数组的指针 所以p2为指向数组的地址,*p2为数组里a[0]的地址,**p2为a[0]的值        (*为取内容)

——————————————————————————

先说结论:二维数组名不是二级指针,而是一个数组指针   关于二级指针,其实就是指向指针的指针,在上面我用二级指针指向一个 指针数组 是合法的,其值就是 指针数组 第一个元素的地址,而第一个元素是一个指针,那么就是指向指针的地址,在通过下标找寻元素的时候,其实质是先找到所谓"行"(找到一个指针),然后通过第二个下标找到该指针指向的第几号元素完成索引。 ———————————————— 应证了上面的结论   在c/c++中,多维数组的构成其实是通过数组嵌套构成更高维的数组,比如,二维数组中每一个元素都是一个一维数组,五维数组的每一个元素都是一个四维数组,那么,数组名是指向首元素的指针,于是二维数组名就是一个指向一维数组的指针(int (*a)[x]),同样的,多维数组名其实就是一个指向维度-1的数组指针(int(*a)[x][x][x]…)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3