【问答】如何理解数组和指针的区别

本文介绍了数组和指针在C语言中的主要区别,包括访问方式、动态数据结构、固定数据类型、内存管理以及在函数参数传递和sizeof运算上的差异。同时,提到了它们的共同点,如存储和操作内存地址、访问值及作为函数参数使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组与指针的是有区别的,在《C专家编程》与《C和指针》这两本书里都是有记载的。本文以学习笔记的形式将其收录,旨在告诉自己和提醒自己,归纳这些区别。

不同点

  • 指针是间接访问,数组是直接访问
  • 指针保存数据的地址,数组是保存数据
  • 指针通常访问动态数据结构,数组通常用于固定数据类型
  • 指针通常相关函数为malloc与free,数组通常是隐式分配和删除
  • 指针通常指向匿名数据,数组自身即为变量
  • 指针可以创建锯齿状数组,而数组则不能自己创建锯齿状数组
  • 数组是一种有固定大小、有序排列的数据结构,它的元素类型必须一致,而指针只是一个变量,存储了一个地址,指向的对象可以是任何数据类型。
  • 数组的大小在声明时就已经确定,无法改变,而指针的指向可以在程序运行时动态地改变。
  • 对数组名进行取地址操作得到的是数组首元素的地址,而对指针变量进行取地址操作得到的是该指针本身的地址。
  • 在函数参数中,数组作为参数传递是以数组的形式传递的,即传递了整个数组的副本,而指针作为参数传递是以指针的形式传递的,即传递了指向数组首元素的指针。
  • 对数组名进行sizeof操作得到的是整个数组的大小,而对指针变量进行sizeof操作得到的是该指针变量本身的大小。

相同点

  • 数组和指针都可以用来存储和操作内存地址
  • 数组和指针都可以访问值
  • 数组和指针都可以用来传递参数给函数,并在函数内部修改参数的值。

总结

文章虽短小,但通过此,也能掌握一点知识,希望能帮助到读者。谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值