首先定义一个数组: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]是完全相等的。
本文揭示了数组引用中一种鲜为人知的方式——使用索引作为前缀。通过解析底层指针操作,解释了ArrayName[num]与num[ArrayName]在语法上的等价性,并探讨了这种写法背后的原理。

3859

被折叠的 条评论
为什么被折叠?



