为什么在大部分编译器中指针比数组的执行效率更高,代码更短而在keil中则相反?

8785℃ CHRISTINE

为什么在大部分编译器中指针比数组的执行效率更高,代码更短而在keil中则相反?

问大家一个问题,使用指针是不是比数组更有效率

如果是通过指针访问数组 在遍历的时候

a[i] 和*p相比 前者等效于*(a+i) 所以 相对来说 用*p效率稍高一些。减少一个偏移的动作。

这种情况下 可以说指针效率更高一些。

如果是动态数组和静态数组相对比,二者访问效率在相同访问方式下,几乎相同。如果是局部变量数组和动态数组比较,那么动态数组还要差一点。

所以说,指针和数组的效率比较要看具体情况。

而且,不管是哪种情况,效率的差别都很小,大多数时候可以忽略不计。

为什么编程时使用指针会始程序的运行效率提高?

用变量需要给一个变量申请一个空间,而指针不需要.

C语言,以下两个代码,那段代码效率高,为什么

是代码1,代码1是:int anIndex[10],在栈上分配内存

代码2:在堆上分配内存

学过数据结构的应该知道,栈比堆上分配要快

为什么指针运算比数组运算快得多

数组运算,一般是数组首地址加上下标得到目的元素位置,则,访问一个数据元素,要经过一个加法运算,会耗用一定的计算机时钟周期来进行这样的运算,这是额外的时间开销

用指针访问数据时,指针变量一般是自加运算(++)或者自减运算(--),这两种运算一般在CPU中有专门的单周期运算指令与其对应,效率要比做加法高得多,因此节省了操作及运算时间