jeremie_SYSU 2019-10-27 15:23 采纳率: 0%
浏览 589

C语言关于指针数组和数组指针

C语言关于指针数组输出的问题

#include "stdio.h"
int main()
{
    char *p1[4] = { 'A','B','C','D' };
    char(*p2)[4] = &p1;

    for (int i = 0; i < 4; i++)
    {
        printf("%c\n", *(*(p2 + i)));
    }
    system("pause");
    return 0;
}

这里是输出格式是* (*(p2 + i)))
如果替换为*(*p2 + i)),则错误!

#include "stdio.h"
int main()
{
    char *p1[4] = { 'A','B','C','D' };
    char(*p2)[4] = &p1;

    for (int i = 0; i < 4; i++)
    {
        printf("%c\n", *(*(p2 + i)));
    }

    int *p1[4] = { 9,8,7,6 };
    int(*p2)[4] = &p1;

    for (int i = 0; i < 4; i++)
    {
        printf("%d\n", *(*p2 + i));
    }
    system("pause");
    return 0;
}

这里是输出是*(*p2 + i)),
如果替换为* (*(p2 + i)))测错误!

请问如何解释这种情况。思考了很久也不知道怎么理解

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2019-10-27 22:50
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器