C语言基础知识:指针与数组的区别是什么

点击蓝字

ab5ad043f9b4f3851b29d004664f9606.png

关注我们

在C语言教程中我们使用通过数组名通过偏移和指针偏移都可以遍历数组,那么指针和数组到底有什么区别??

由于数组中的数据在内存中都是连续存放的,数组名默认就是数组的首地址,也是一个特殊的指针;

3182c04d4c4468275a5dc8013d317eab.jpeg

指针和数组区别

〖  通过 sizeof 获取大小  〗

不管是数组还是指针变量,计算大小的时候都可以通过sizeof函数,注意两者使用的区别:

a.计算数组大小

数组所占存储空间的内存:sizeof(数组名);

数组的大小:sizeof(数组名)/sizeof(数据类型)

eb44fb5e79e554fcd362e911187a77c6.png

b.计算指针大小

在 32 位平台下,无论指针的类型是什么,sizeof(指针名)都是 4 ,在 64 位平台下,无论指针的类型是什么,sizeof(指针名)都是 8 ;

ad5d9f9c16c6eb07ee245e11e25f6386.png

由此可见,sizeof函数计算指针大小的时候,与数据变量类型无关,x86平台下指针大小始终为4,x64平台下指针大小始终为8;

〖  指针和数组赋值方式不同  〗

a.指针赋值

指针很灵活,它可以指向任意类型的数据。指针的类型说明了它所指向地址空间的内存。

b.数组赋值

数组在内存中是连续存放的,开辟一块连续的内存空间。数组可以根据数组的下进行访问,多维数组实际上由多个一维数组构成,数组的赋值这里不再重复讲解。

〖  指针是指针变量,数组是指针常量  

常量:常量的值始终是固定的,不能被修改;

变量:变量的值可以任意修改;

那么指针和数组区别在哪呢?

6eb470190058da7c864fdd2de3fbd08d.png

写法一是正确的,常规操作;

写法二是错误的,数组名默认指向数组的首地址,是不能被修改的;

总结:所以说数组是指针常量,不能被修改;指针是变量,可以被随意修改。

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

82cf3b694a5a9908e463977ac02a7b2f.png

22e9a11576ab2cfe1b2fb06c835c0d97.gif

戳“阅读原文”我们一起进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值