【概念辨析】数组指针&指针数组

       

目录

        一、数组指针

        二、指针数组

        三、 数组指针的数组名不是二级指针

         再来说最关键的:数组指针为什么不是二级指针呢?

       代码如下:

        四、指针数组的数组名是二级指针


在复习,在考试,在焦虑。

        又一次学习到了数组指针和指针数组这个头疼的概念,只不过这次的头脑过更加清晰,理解更加深刻。

        一、数组指针

        数组指针是指针,这个指针指向数组。

        二、指针数组

        指针数组是数组,这个数组的每个元素是指针,也就是说:指针数组是保存地址的数组。 

        三、 数组指针的数组名不是二级指针

        先看一组常见的辨析:

上述代码说明了:

数组指针(p)指向了这个数组(arr),并且:数组名的值是数组首元素的地址。

        再看一组区别它们的代码:

上述代码说明了:

1.数组指针 取出来的是整个数组的地址

2.数组名是首元素的地址

3.&数组名是整个数组的地址

尽管它们三个在值上都等于&arr[0][0]。

         再来说最关键的:数组指针为什么不是二级指针呢?

        1.数组指针是指向数组的指针

           二级指针是指向指针的指针

        2.对数组指针进行解引用得到的是数组

           对二级指针进行解引用得到的是指针

       代码如下:

由上述代码可知:

*p  <==> arr

arr是一个数组名,指向数组的首元素,那么*p也是一个指针形式的数组名,与arr完全相等。由此,*p并不是二级指针。

        四、指针数组的数组名是二级指针

        看一段推导关系:

        数组名是指向数组中第一个元素的指针,指针数组是指向数组的,也就是说,指针数组是指向指针的指针,也即二级指针。

        代码证明:

 可能只有这么一条还是不具有足够的证明力度:

使用二维传递参数看看结果:

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值