c语言 数组与指针

举报
糖果罐子 发表于 2023/06/18 22:10:01 2023/06/18
【摘要】 @TOC 前言之前我们讲了指针数组,今天讲一下数组指针。 一、数组与指针的概述:数组指针就是数组的指针,就是***指向数组的指针。***int a [5] = {1,2,3,4,5}; / / 定义一个数组int *p = &a[0]; / / 定义一个指针指向数组的首地址,由于 数组的首地址就是数组名,所以&a[0]==a; 则可写为 int * p = a;则此时的***指针...

@TOC


前言

之前我们讲了指针数组,今天讲一下数组指针。

一、数组与指针的概述:

数组指针就是数组的指针,就是***指向数组的指针。***

  1. int a [5] = {1,2,3,4,5}; / / 定义一个数组
  2. int *p = &a[0]; / / 定义一个指针指向数组的首地址,由于 数组的首地址就是数组名,所以&a[0]==a; 则可写为 int * p = a;
  3. 则此时的***指针*** p 就是数组指针

二、数组指针遍历数组:

因为 指针 p 指向 数组的首地址,则可以通过地址遍历数组的元素。

  1. 前面我们讲过指针的偏移,又因为 p 指向数组可得到:
    p+0 == &a[0];
    p+1 == &a[1];
    p+2 == &a[2];
    p+3 == &a[3];
    p+4 == &a[4];
  2. a[0] == *&a[0] == *(p+0) == *p;
    a[1] == *&a[1] == *(p+1) == *p;
    a[2] == *&a[2] == *(p+2) == *p;
    a[3] == *&a[3] == *(p+3) == *p;
    a[4] == *&a[4] == *(p+4) == *p;

三、数组指针遍历数组元素的应用:

在这里插入图片描述
注意:
1.* (p+i)一定要加小括号,因为* 的优先级低于 + 。

总结

指针数组和数组指针一定要好好理解,不要搞混淆。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。