引用数组元素

成长 专栏收录该内容
72 篇文章 0 订阅

引用一个数组元素可以有以下两种方法:
(1)指针法。有 *(a+i), *(p+i) 两种表现形式,都是用间接访问的方法来引用数组元素。
(2)下标法。有a[i] 和 p[i] 两种形式。在编译时这两种形式也要处理成 *(a+i) 或 *(p+i)
,即先按“a+i x(一个元素占用字节数)”计算出第 i 号元素的地址,然后通过指针运算
符 “ * ” 来引用该元素。
下面举个例子看一下这两种用法:

#include <stdio.h>
int main()
{
    int a[10],i,*p;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    for(i=0;i<10;i++)
        printf("%d ",*(a+i));	/*形式1:指针法之*(a+i)形式*/
    printf("\n");
    for(p=a;p<(a+10);p++)
        printf("%d ",*p);		/*形式2:指针法之*p形式*/
    printf("\n");
    for(i=0;i<10;i++)
        printf("%d ",a[i]);		/*形式3:下标法之a[i]形式*/
    printf("\n");
    for(p=a,i=0;i<10;i++)
        printf("%d ",p[i]);		/*形式4:下标法之p[i]形式*/
    printf("\n");
    return 0;
}

程序运行结果如下:
1 2 3 4 5 6 7 8 9 10 ,然后按 enter 键得到
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
上述形式 1 和形式 3 的执行效率是相同的,都要按 a+i 计算地址,然后找出该单元中的值。
由于 p++ 这样的自增操作无须每次都重新计算地址,所以形式 2 最快。但其中的 *p 究竟
是哪个元素,不易看出,而下表法更直观些。

  • 4
    点赞
  • 0
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值