首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C数组中p[-2]的输出

C数组中p[-2]的输出
EN

Stack Overflow用户
提问于 2014-12-05 12:58:38
回答 2查看 1.4K关注 0票数 0

我正在尝试下面的代码片段。请帮助我理解交货单是如何作为2来的吗?p[-2]在这里是什么意思?

代码语言:javascript
复制
int main(void){
    int ary[4] = {1, 2, 3, 6};

    int *p = ary + 3; 

    printf("%d\n", p[-2]); 
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-05 13:04:14

ary是一个由四个int组成的数组。

代码语言:javascript
复制
 |  1  |  2  |  3  |  6  |
    ^     ^           ^
    |     |           |
   ary  p - 2         p

通过说p = ary + 3,您将p设置为数组中第四个元素的地址。所以,p指的是6p[-2]等于*(p - 2)。这意味着将p指向数组中的第二个元素,并访问其值:2

票数 5
EN

Stack Overflow用户

发布于 2014-12-05 13:02:49

int *p = ary + 3指向ary3,所以如果将指针向后移动两步,您将得到ary1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27316444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档