使用数组、指针的效率问题

来源:互联网 发布:2017年最新网络诈骗 编辑:程序博客网 时间:2024/05/24 04:38
/***数组与指针之间的关系**数组名的是一个指针常量**当你根据某个固定数目的增量在一个数组中移动时,使用指针变量将比使用下标产生效率更改的代码,当这个增量是1并且具有地址自动增量模型时,这点表现的更为突出。**声明为寄存器变量的指针通常比位于静态内存和堆栈中的指针效率更高。**如果你可以通过测试一些已经初始化并经过调整的内容来判断循环是否应该终止,那时你就你需要使用一个单独的计数器。*/#include <stdio.h>#include <stdlib.h> #define SIZE 50int x[SIZE] = {0,1,2,3,4};int y[SIZE] = {5,6,7,8,9};int i;int *p1,*p2;void try1()                              //效率最差,可读性最高{    for(i = 0; i < SIZE; i++)        x[i] = y[i];}void try2(){    for(p1 = x,p2 = y;p1 - x < SIZE; )                    *p1++ = *p2++;}void try3(){    for(i = 0,p1 = x,p2 = y;i < SIZE;i++)        *p1++ = *p2++;}void try4(){    register int *p1,*p2;    register int i;    for(i = 0,p1 = x,p2 = y;i < SIZE;i++)        *p1++ = *p2++;}void try5()                               //效率最高,可读性最差{    register int *p1,*p2;    for(p1 = x,p2 = y;p1 < &x[SIZE]; )        *p1++ = *p2++;}int main(){     return 0;  }
原创粉丝点击