指针就是数组,数组就是指针??大错特错

本文指出初学者常犯的错误——认为指针和数组等同。实际上,数组是连续存储的元素集合,而指针是变量,指向内存地址。数组名通常表示首元素地址,误以为两者都能修改内容,实则只有数组本身的内容可变,指针指向的内容独立于数组。
摘要由CSDN通过智能技术生成

最近听到有小伙伴说“指针就是数组,数组就是指针,”我大为惊愕,转念一想,这或许是很多初学者容易踩的坑吧!

我们首先来看一段代码

单从打印的结果来看,好像是没有什么区别,但这是真的吗???

假的!

现在让我们来看看吧!

1、监视

我们可以看出arr1是数组,arr2是指针。

2、内容能改吗?

先说结论,arr1里面放的内容能改,而arr2指向的区域里的内容不能修改!

看着段代码(有毛病!!)

这是vs2022上的运行结果

什么都没有

为什么?

程序直接崩溃了!

还是这句话:“arr1里面放的内容能改,而arr2指向的区域里的内容不能修改!”

这和他们所存放的地址有关,这里不展开讲。

3.

我们先来对比这两个代码

很明显,如果你写出第一个代码来,你会得到一个大嘴巴子

而第二的代码是没有问题的。

第而个代码的逻辑其实就是----pp里原本存的"abcdefg"的首元素地址,现在存的"sdfgh"的首元数地址。(唯一的问题就是我们在内存中开辟了一块空间存放"abcdefg",现在永远找不到了)

最后总结一下:“指针就是数组,数组就是指针”大错特错!!我想了一想,大概是数组名有时可以表示首元数地址所带来的误解吧。

好了,希望今天能给你带来帮助。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值