//问最后的输出结果,*(p + 4) - *(p + 0)我第一次说16,最后说4,感觉就是16啊,为啥子? #include <stdio.h> int a[] = {1, 3, 5, 7, 9}; int *p[] = {a, a + 1, a + 2, a + 3, a + 4}; int main() { printf("%d %d %d\n", a[4], *(a + 2), *p[1]); // 9 5 3 printf("%d %d %d\n", **(p + 1) + a[2], *(p + 4) - *(p + 0), *(a + 3) % a[4]); // 8 4 7 printf("%d %d \n", *(p + 4), *(p + 0)); //4206640 4206624 不懂为啥减完成4了? return 0; }
时间: 2024-04-09 22:29:40 浏览: 59
根据给出的代码,我们来分析一下最后一行的输出结果。
首先,`*(p + 4)`表示取数组 `p` 中第 4 个指针所指向的值,即 `*(a + 4)`,对应于数组 `a` 的第 5 个元素,即 9。
然后,`*(p + 0)`表示取数组 `p` 中第 0 个指针所指向的值,即 `*(a + 0)`,对应于数组 `a` 的第 1 个元素,即 1。
所以,最后的输出结果应该是 `9 - 1 = 8`。
因此,答案是 8。
阅读全文