通过指针引用数组元素
发表:2023-08-29 12:00:46 阅读:15

电子资讯】通过指针引用数组元素

 

如果指针p指向一个一维数组x[5],并且p已赋初值&.x[0],可以使用以下3种方式引用数组元素:

①下标法:C语言规定,如果指针变量P已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。p+i和x+i,就是a[i],或者说它们都指向x数组的第i个元素。

 

②地址法:*(p+i)Nl*(x+i)tg 99是x[i]。实际上,编译器对数组元素x[i]就是处理成*(x+i),即按数组的首地址加上相对位移量得到要找元素的地址,然后找出该单元中的内容。

 

③指针法:用间接访问的方法来访问数组元素,指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价。

下面利用上面3种访问方法编写例程,程序清单如下:

#included ioml28v.h>

#include

#included stdi0.h>

void init devices(void) //设备初始化

f

CLI();

XDIV =Ox00;

XMCRA=Ox00;

MCUCR=0x00;

EIMSK=Ox00;

TIMSK=Ox00;

SEI();

}

void main()

{

init_devices();

int x[10]={0,1,2,3,4,5,6,7,8,9);

int i;

for(i=0;i

printf(”%d”,x[i]); //下标法输出

printf(”\n”); //换行

for(i=0;i

printf(”%d”,*(x+i)); //地址法输出

printf(”n”); //换行

for(p=X;p<(x+10);P++)

printf(”%d”,*p); //指针法输出

}

 

对上述3种方法说明如F:

在C语言中,像p++这样的自加操作是比较快的,这种有规律地改变地址值(P++、)的方法能大大提高执行效率。下标法和地址法执行效率相同。C编译系统是将x[-i]转换为*(x+i)处理的,即先计算元素的地址。指针变量可以直接指向元素,不必每次都重新计算地址.因此指针法速度快。下标法比较直观,能直接知道是第几个元素;地址法和指针法不直观.不容易很快判断出当前正在处理的是哪一个元素。

 

 

电子街更多推荐

指针变量运算

指针变量作为函数参数

指针变量几个问题的进一步说明

数组指针和指向数组的指针变量