数组索引的特殊样式ArrayName[num]和num[ArrayName]

本文揭示了数组引用中一种鲜为人知的方式——使用索引作为前缀。通过解析底层指针操作,解释了ArrayName[num]与num[ArrayName]在语法上的等价性,并探讨了这种写法背后的原理。

   首先定义一个数组:int ArrayName[10];

   一般来说要引用数组的元素是采用ArrayName[num]的样式,如a[5]引用序号为5的元素;

   但ArrayName数组名和num索引值的位置是可以互换的,也就是可以采用num[ArrayName]的形式,如5[a]也是引用序号为5的元素。

居然还可以这样引用数组!先感叹一下~

   深层原因在于,数组的引用实际上是指针的操作,引用数组ArrayName的第num个元素的工作实际是下式*(ArrayName + num)(特别注意:*(ArrayName + num) ==*(num + ArrayName)),因为数据引用太过常见,因而简写为ArrayName[num]这种形式,编译器(或者是预处理器???)只是将这种简写展开而已,展开后的ArrayName[num]与num[ArrayName]是完全相等的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值