指针数组 数组指针

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

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

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

为什么等于3   **(p2+1)表示第1行第0个元素内容        

*(p2+1)+1表示第1行第1个元素的地址                *(*(p2+1)+1)表示第1行第1个元素的内容

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

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

指针数组数组指针是两种不同的概念。指针数组是一个数组,其中的每个元素都是指针。例如,int *(p1\[5\])定义了一个指针数组,它包含了5个指针元素。这个数组本身占用的内存空间取决于数组的大小,而每个指针元素所指向的对象占用的内存空间则由指针类型决定。\[1\] 数组指针是一个指针,它指向一个数组。例如,int (*p2)\[5\]定义了一个指向包含5个整数的数组指针。这个指针本身占用的内存空间是固定的,通常是4个字节(在32位系统下)。而指针所指向的数组占用的内存空间取决于数组的大小和元素类型。\[2\] 因此,指针数组数组指针在定义和内存占用上有所不同。指针数组是一个数组,每个元素都是指针;而数组指针是一个指针,它指向一个数组。\[3\] #### 引用[.reference_title] - *1* *3* [C语言指针与二维数组](https://blog.csdn.net/qq_38325803/article/details/100547699)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [数组指针指针数组](https://blog.csdn.net/mick_hu/article/details/100931034)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值