返回介绍

入门

基础

进阶

19. 数组指针的概念及定义

发布于 2024-10-07 02:37:14 字数 4007 浏览 0 评论 0 收藏 0

数组指针的概念及定义

  • 数组元素指针

  • 一个变量有地址,一个数组包含若干元素,每个数组元素也有相应的地址, 指针变量也可以保存数组元素的地址

  • 只要一个指针变量保存了数组元素的地址, 我们就称之为数组元素指针
    printf(“%p %p”, &(a[0]), a); //输出结果:0x1100, 0x1100
  • 注意: 数组名a不代表整个数组,只代表数组首元素的地址。
  • “p=a;”的作用是“把a数组的首元素的地址赋给指针变量p”,而不是“把数组a各元素的值赋给 p”

指针访问数组元素

    int main (void)
{
      int a[5] = {2, 4, 6, 8, 22};
      int *p;
      // p = &(a[0]); 
      p = a;
      printf(“%d %d\n”,a[0],*p); // 输出结果: 2, 2
}
  • 在指针指向数组元素时,允许以下运算:

  • 加一个整数(用+或+=),如p+1

  • 减一个整数(用-或-=),如p-1
  • 自加运算,如p++,++p
  • 自减运算,如p--,--p

  • 如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素,p-1指向同 一数组中的上一个元素。
  • 结论: 访问数组元素,可用下面两种方法:

  • 下标法, 如a[i]形式

  • 指针法, *(p+i)形式

  • 注意:

  • 数组名虽然是数组的首地址,但是数组名所所保存的数组的首地址是不可以更改的

  int x[10];
    x++;  //错误
    int* p = x;
    p++; //正确

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文