指向数组的指针

指向数组的指针变量成为数组指针变量。一个数组是由连续的一块内存单元组成的。数组名就是这块连续内存单元的首地址。

该实例我们实现了使用数组的指针引用数组,利用数组名以及下标引用数组等。

其中,使用数组的指针和数组的下标来遍历数组的时候可能不太容易理解,但是我已经在注释中说明清楚了。

下面附上我的代码:

#include <stdio.h>

/** * 本实例实现通过指向数组的指针引用数组, * 利用数组名以及下标引用数组等 * @brief main * @return */
int a[]={1,2,3,4,5};
#define N sizeof(a)/sizeof(a[0])

int main(void)
{
    int j; //游标变量
    int *p; //指针变量

    //利用数组名和下标顺序访问数组元素
    for(j = 0;j < N;j++){
        printf("a[%d]\t= %d\t",j,a[j]);
    }
    printf("\n");

    //让指针顺序指向数组的各元素,遍历数组
    for(p = a;p < a+N;p++){
        printf("*p\t= %d\t",*p);
    }
    printf("\n");

    //指针和游标变量结合,改变游标变量遍历数组
    for(p = a,j = 0;p+j<a+N;j++){
        printf("*(p+%d)\t= %d\t",j,*(p+j));
    }
    printf("\n");

    //指针和游标变量结合,用指针和下标遍历数组
    for(p=a+N-1,j=N-1;j>=0;j--){
        /** * 这个地方刚开始一直没有看懂,后来明白了 * 当p=a+N-1时,就已经将该位置当作下标为0了 * 所以,其前一个元素就是a[-1]也就是4 */
        printf("p[-%d]\t= %d\t",j,p[-j]);
    }
    printf("\n");

    return 0;
}

下面是我的程序运行的结果截图:

这里写图片描述

转载于:https://my.oschina.net/u/1051345/blog/416942

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值