数组和指针的区别与联系

本文探讨了指针和数组在数据内容、动态数据结构、内存管理、可变性以及作为函数参数时的差异。尽管两者在某些方面有相似之处,如在函数参数传递和下标操作上的等价性,但在使用和概念上它们是不同的。通过示例,阐述了指针可以动态改变所指数据,而数组一旦定义大小便不可更改。同时,数组名在函数参数中等效于指针,但在主函数中数组名被视为常量。
摘要由CSDN通过智能技术生成

指针和数组的不同

1. 指针和数组保存的数据内容不同

指针保存指针变量,即保存数据的地址;数组保存同一类型数据的值

2. 指针用于动态数据结构,就是说指针保存的数据可以改变;而数组用于存储固定数目且数据类型相同的元素即一旦数组的大小定了就不容易变了;

3. 指针用malloc()和free()来分配空间和释放空间,而数组是隐式分配和删除;

4. 指针通常指向匿名数据,而数组自身就是数组名

5. 数组名作为函数参数时就等价与指针,某种意义可以说他们等价的,但是一般情况下定义一个数组,则数组名就是常量是不能被改变的,一旦作为函数参数传递,代表地址,则它本身就变为指针变量。显然和我们认识的数组名有所违背。

例子:

int arr[]

arr++;

上面两行在一般的主函数中就会出现编译错误

int fun(int arr[])

arr+;

上面两行作为函数参数是可以改变的

指针和数组的相同点

1. 作为函数参数时数组名就等于指针   void fun(int arr[])

解释:函数形参int arr[]与int *arr是等价的,也就是通常我们说的数组名代表数组首元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值