• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
My Blog
博客园    首页    新随笔    联系   管理    订阅  订阅

【C语言】数组指针

【C语言】数组指针

顾名思义,数组指针是指向数组的指针。
例如,p是一个指向含有3个int元素的一维数组的指针:

int (*p)[3];            //圆括号的优先级更高,让p先与*结合再与[]结合

用法:

#include <stdio.h>

// void display1(int p[][3])            //等价下行写法
void display1(int (*p)[3])
{
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d ", *(*(p + i) + j));
            // printf("%d ", p[i][j]);
        }
        printf("\n");
    }
}

int main(void)
{
    
    int zippo[2][3] = {{1, 1, 4}, {5, 1, 4}};
    int (*pz)[3] = zippo;            //int (*pz)[3]是一个指向含有3个int元素的一维数组的指针。
    display1(pz);
    printf("pz = %p\n", pz);
    printf("pz + 1 = %p\n", pz + 1);    //和pz相差12个字节,即3个int的大小。

    return 0;
}
posted @ 2023-10-17 22:52  codels  阅读(43)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3