C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 索引与指针大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用元素数组,其中许多元素相互引用,我假设在这种情况下使用指针更有效.
在某些情况下,我需要知道我有指针的元素的索引.例如,我有p =& a [i],我需要知道i的值.据我了解,我可以通过p – a计算出来.但是这种操作固有地涉及分割,这是昂贵的,而从数组索引计算地址涉及乘法并且更快.

所以我的问题是,在需要索引的情况下是否使用指针进行交叉引用甚至是值得的?

解决方法

仅当元素的大小不是2的幂时,即当它不是指针时,或者在大多数系统上的某种标准类型时,该操作才需要除法.使用比特移位除以2的幂,这是非常便宜的.

这里适用相同的逻辑,除了编译器向左移动而不是向右移位.

在没有分析的情况下计算cpu周期是过早优化的一个例子 – 在开始设计时要虑的一件坏事.

更重要的虑因素是索引更加健壮,因为它们经常在数组重新分配后继续存在.

一个例子:假设有一个数组在向后添加元素时动态增长,该数组的索引和指向该数组的指针.你向数添加一个元素,耗尽它的容量,所以它现在必须增长.你调用realloc,并获得一个新的数组(如果在“官方”结束后有足够的额外内存,则获得一个旧数组).你持有的指针现在无效;但是,索引仍然有效.

大佬总结

以上是大佬教程为你收集整理的c – 索引与指针全部内容,希望文章能够帮你解决c – 索引与指针所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:c指针索引