【发布时间】:2015-02-12 10:10:57
【问题描述】:
需要一点帮助来理解这段代码 sn-p 中到底发生了什么。 当我运行程序时,它会打印 7。
#include <stdio.h>
int main() {
int a[] = {1,2,3,4,5,6,7,8,9};
int b[] = {1,2,3,4,5,6,7,8,9};
int c = 5;
int *p = a;
printf("--> %d", (c[b])[p]);
return 0;
}
当谈到 printf 语句中的 (c[b])[p] 部分时,我有点困惑。 任何帮助/解释将不胜感激。
【问题讨论】:
-
c[b]的含义与*(c + b)相同。这应该会有所帮助。 -
@BennoZeeman 你忘记了一些括号。他们很重要。即,查看当前答案。
-
@remyabel 谢谢,你是对的。我刚刚检查了 C 标准,他们提到
E1[E2]与(*((E1)+(E2)))相同。