数组和指针不相同吗?数组和指针有哪些区别

数组就是指针,指针就是数组,这样的言论在评论区看到不下于10次。
翻开《c专家编程》,来到第四章,标题非常醒目:
令人震惊的事实,数组和指针并不相同。
之前的视频我们讲过,数组可以用指针来表示,指针也可以用数组的形式来访问,今天再来盘点一下,数组和指针有哪些区别。
第一个声明的方式不一样。
比如在 1.c 文件中定一个全局数组:
如果想在 2.c 文件中使用,那么只能写成这样:
extern int array[];
如果写成:
extern int *array;
程序就会崩溃。
虽然编译没有问题,但是运行的时候,array 可能就是个空指针。
第二个访问的方式也不一样。
对于数组来说,先是取下标的值,然后跟数组首元素的地址相加,最后取对应地址里面的内容。
指针则是先取指针变量里面的地址,然后再取对应地址里面的内容。
第三个也是它们最本质的区别 ,数组用于保存数据,指针用于保存数据的地址。
第四个使用场景不同。
指针常用于动态数据结构,配合 malloc 和 free 函数,根据实际情况分配和释放内存;数组通常用于存储固定数目,且数据类型相同的元素,内存一般隐式分配和删除。
数组和指针,日常使用中尽管看上去一样,但是底层实现的机制却不同。


新手入门应如何选择ARM开发板_选择开发板的注意事项
商汤科技SenseMARS AI数字人解决方案亮相
高通发布最新的金属外壳无线充电技术
人脸识别技术在校园管理中的应用
赛灵思为Prime系列添加新的成员VM2202
数组和指针不相同吗?数组和指针有哪些区别
ROHM推出小尺寸实现超高额定功率的分流电阻器“GMR50”
数字技术革命:走向大规模应用
Microchip发布全新GestIC控制器,使嵌入式设备添加3D手势识别设计一步到位
万亿级消费级市场——物联网
应答机器人可通过导航系统传达实时灾情
当酷睿i9-9900K使用47WTDP的散热器时会怎样 开机瞬间就升温到100度左右
如何使用中断将消息写入LCD屏幕
数控系统故障诊断方法解析
家里WiFi信号弱怎么办?7招教你完美解决信号弱的问题!
共漏极放大电路
单片机的优缺点和应用领域 单片机的硬件特征
联发科天玑移动芯片在电竞赛道落下三板斧
英伟达第三财季营收大涨57% 美国亚利桑那州批准台积电5nm芯片工厂计划
霍尼韦尔航空航天贸易服务将与南通华夏飞机公司开展合作