zhanjunlihai 2023-11-21 22:14 采纳率: 24.7%
浏览 0
已结题

指针变量输出数组,一个语句写了两次

为什么 p=a;出现了两次,第二次的p=a; 可以省略吗?不是很懂。



```c

#include <stdio.h>
int main()
{    int *p,i,a[8];
     p=a;
      for (i=0;i<8;i++)
    scanf("%d",p++);
    p=a;     //可以省略吗?
    for (i=0;i<8;i++,p++)
    printf("%4d",*p);
    printf("\n");
return 0;
} 

```

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-23 02:14
    关注

    【以下回答由 GPT 生成】

    第二次p=a;语句不能省略。在这段代码中,第一次p=a;是为了将指针p指向数组a的首地址,从而可以通过p来输入数组a的元素值。然后p++用于依次移动指针p,使其指向数组a中的下一个元素。
    
    在输入完数组a的值后,需要再次跳回数组a的首地址,因为指针p已经指向了数组a的最后一个元素的下一个位置。所以第二次p=a;的作用是将指针p重新指向数组a的首地址,以便后续的输出操作。
    
    因此,第二次p=a;语句不可以省略。
    

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 11月21日