bywfssl 2017-08-02 02:49 采纳率: 100%
浏览 759
已采纳

下面这一小段程序,谁能帮忙解释一下~

 #include<stdio.h>
int main()
{
        int arr[]={1,2,3,4,5};
        int *p=arr;//                         
        printf("%d",arr[2]);//
        printf("%d",*(arr+2));//                
        printf("%d",p[2]);//p+0~p+4可以表示数组元素的地址,但是这里p[2]是什么用法?
        printf("%d",*(p+2));//
        *(p+2)+=3;//这里是先计算*(p+2)指向arr[2],再计算arr[2]+=3吗?
        printf("%d",*(p+2));//
}



  • 写回答

2条回答 默认 最新

  • 拾不到一片光 2017-08-02 03:04
    关注
     #include<stdio.h> // 没有添加头文件stdio.h
    int main()
    {
        int arr[]={1,2,3,4,5};
        int *p;
        p=arr;//  arr为数组指针,所以不能直接int p = arr;
        printf("%d\n",arr[2]);// 打印出arr数组的第三个值(从0开始计算)
        printf("%d\n",(arr+2));// 输出存放arr[2]的位置。
        printf("%d\n",p[2]);// p也为数组指针,所以输出p[2]和输出arr[2]是一样的值
        printf("%d\n",*(p+2));// p+2表示找到p指针之后的第三个值的位置,然后前面加个*号就是输出该位置的值
        (p+2)+=3;// 此处报错,不知道你要表达什么意思,左值必须是有效的。
        printf("%d\n",(p+2)); //输出指针位置 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 如何将下列的“无限压缩存储器”设计出来
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口