gpt4 book ai didi

c - 为什么下面的程序输出是 5,而不是 4?谁能解释一下?

转载 作者:太空宇宙 更新时间:2023-11-04 05:47:46 26 4
gpt4 key购买 nike

我发现了一个输出 5 的程序。我不知道怎么做。请解释。

int main(void) {
int t[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, *p = t;
p += 2;
p += p[-1];
printf("\n%d",*p);
return 0;
}

我希望输出为 4。这里指针从t[0]移动到t[2](p+=2;)。在下一个语句 p+= p[-1] 中,我相信指针首先移动到值为 2 的 t[1],因此增加了 2。所以我预计输出为 4。但实际输出是5。有人解释一下吗?

最佳答案

p = t; // p = &t[0]
p += 2; // p = &t[2]
p += p[-1]; // p += 2; // p = &t[4]

关于c - 为什么下面的程序输出是 5,而不是 4?谁能解释一下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55810204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com