【问题标题】:Can someone explain the role of p[-i] printf("%d" , p[-i]) [duplicate]有人可以解释 p[-i] printf("%d" , p[-i]) 的作用 [重复]
【发布时间】:2018-02-16 23:05:19
【问题描述】:

我的猜测是,在 p[-i] 中,它从当前指向左侧的第 i 个位置。我只是一个初学者,所以还有更多的东西。

     #include<stdio.h>
     int main() {
     int arr[ ]={0,1,2,3,4};
     int *p,i;mm
        for(p=arr+4, i=0;i<=4;i++)
            printf("%d" , p[-i]);//43210
      }

【问题讨论】:

  • 还有更多内容吗?还有什么可能?
  • OMGosh,我曾经在驱动程序代码中经常看到这样的循环。我总是发现for(p=&amp;arr[4+1]; p&gt;arr; ) printf("%d", *(--p)) 的可读性要高出无数倍。

标签: c


【解决方案1】:

p 是指向数组末尾的指针。所以 p-i 是指向 p 左侧数组中第 i 个位置的指针。这个 p[-i] 就是那个位置的元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多