指针5(指针与数组1)

指针与一维数组

可以将一组数组的首地址或其元素的地址赋值给相同数据类型的指针变量,使该指针变量指向一维数组或其元素,进而利用该指针变量处理一维数组或其元素。


int a[10];
int *p;
p=&a[0];
根据指针的算术运算
p+i就是数组元素a[i]的地址
(p+i)是p+i所指向的数组元素,即a[i]
综上,引用一维数组的元素,可以用以下两种方法,
(1)下标法,如a[i]
(2) 指针法,如
(a+i)

说了那么多,其实就是利用指针可以引用数组或数组元素
例题

#include<stdio.h>
int main()
{int a[3],*p,i;
 p=a;
// printf("\n");
 for(i=0;i<3;i++,p++)
{
  scanf("%d",p);
}
 p=a;
 printf("\n");
 for(i=0;i<3;i++,p++) 
 {
 printf("%d ",*p);
 printf("%p\n",p);
 }
  return 0;
}

运行结果
在这里插入图片描述

注意
程序中第一个"p=a;"将数组的首地址赋给指针变量p。由于使用for循环读入数组是对p进行自加,当第一个for循环结束后,p的值已经是“a+3”。所以,在使用变量怕输出数组元素值之前,要对p重新赋值。
运行结果,分别输出了变量的值和地址。
下一篇会增加一道例题,有兴趣的可以先自己尝试,再看答案,
下一篇 指针6(指针与数组2)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值