缘起: 在 C 语言编程中,经常需要对数组进行遍历操作。

通常有两种常见的方式:一种是使用索引进行遍历另一种是使用指针进行遍历

本文将聚焦于比较这两种方式的效率差异,并阐述为什么指针遍历方式在大多数情况下更高效。

+++

首先看个例子吧:

EfficiencyOfCodeExecution.c

/****************************************************
* file : EfficiencyOfCodeExecution.c
****************************************************/
#include "stdio.h"
/****************************************************
* Global Type Declaration
****************************************************/
typedef struct {
    int a;
    char b;
    int c;
} foo_struct;
/****************************************************
* Global Function Implement
****************************************************/
int main(void){
    /* 1. 声明结构体数组 */
    foo_struct foo[10];
    /* 2. 第一种遍历方式 */
    int i;
    for(i=0;i<10;i++){
        foo[i].a=77;
        foo[i].b=88;
        foo[i].c=99;
    }
    /* 3. 第二种遍历方式 */
    foo_struct *fp;
    foo_struct *fend;
    fend = foo + 10;
    for(fp=foo;fp!=fend;++fp){
        fp->a = 77;
        fp->b = 88;
        fp->c = 99;
    }
    
    while(1){
    }
    return 0;
}
/****************************************************
* file : EfficiencyOfCodeExecution.c end!
****************************************************/

上述的第二种指针的方式又高级又效率!

主打一个高级感🚎

还不用起来🎀

那 为什么呢?

索引遍历方式需要通过索引值来访问数组元素。每次迭代都需要进行索引值的计算,然后根据索引值进行内存地址的访问。

这涉及到了额外的计算操作,增加了代码的复杂度和执行时间。

相比之下,指针遍历方式直接通过指针进行内存地址的访问,无需进行额外的索引计算。

指针递增操作由编译器自动完成,减少了不必要的计算开销。

这使得指针遍历方式能够更快速地访问数组元素,提高了代码的执行效率。

当然啦!这也不是绝对滴,在某些特殊情况下,索引遍历方式可能会更适合。

例如,需要随机访问数组元素或具有特定的索引模式时,索引遍历方式可能更具优势。

学会了嘛😜

谢谢可爱的你能看到最后呢!

爱你呀😍

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

flechazo 微信支付

微信支付

flechazo 支付宝

支付宝

flechazo 贝宝

贝宝