您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页深入理解指针(3)——指针数组

深入理解指针(3)——指针数组

来源:纷纭教育

一、数组名的理解

二、使用指针访问数组

三、一维数组传参的本质

四、二级指针

五、指针数组

六、指针数组模拟二维数组


一、数组名的理解

在上一章中我们使用指针访问数组内容时,有这样的代码:

sizeof(数组名),sizeof中单独放数组名,这⾥的数组名表示整个数组,计算的是整个数组的⼤⼩,
单位是字节
&数组名,这⾥的数组名表⽰示整个数组,取出的是整个数组的地址(整个数组的地址和数组⾸元素的地址是有区别的)

二、使用指针访问数组

以下是通过指针向数组中输入数据和打印数组:

三、一维指针传参的本质

所以看似人模狗样给个数组接收其实本质是int*arr,为方便人们理解写成int arr[ ]

所以“[ ]”中给不给个数无所谓,其本身不会创建一个真的数组,本质是指针变量

形参和实参名字重复不影响

总结:⼀维数组传参,形参的部分可以写成数组的形式,也可以写成指针的形式。

四、二级指针

int** ppa = &pa的意思 ; *ppa表示其是个指针,int*表示其指向的内容是int*类型

五、指针数组

指针数组是指针还是数组?
我们类⽐⼀下,整型数组,是存放整型的数组,字符数组是存放字符的数组。
那指针数组呢?是存放指针的数组。

理解为:arr先与[ ]结合是个数组,数组的每个元素是int*类型

六、指针数组模拟二维数组

什么是二维数组?

可理解为:把⼀维数组做为数组的元素,这时候就是⼆维数组

模拟代码:

补充:在C语言中,两个指针变量的值相同时,内存中不会开辟两块相同的空间,而是两个指针变量同时指向同一块内存空间


未完待续.....

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务