【发布时间】:2019-01-04 14:57:17
【问题描述】:
所以我必须找出为什么会打印出特定值,并且我已经解决了大部分问题,但是最后三个我遇到了问题。
我很乐意为您提供任何帮助
int main(void)
{
int myValues[] = { 9, 0, 12345, 1, 7, 2, 6, 3, 5, 4 };
mess(&myValues[3]); //starts function mess
}
void mess(int *n)
{
printf("mess :%d\n", *n++); //prints value of 3rd index (1) and sets pointer to fourth index
printf("mess: %d\n", *++n); //sets n to 5th index and prints its value
printf("mess: %d\n", -2[n]); //value: -3
printf("mess: %d\n", (-2)[n]); //value: 1
printf("mess: %d\n", n[-6]); //value: 32766
}
我只是不明白值 -3、1 和 32766 是如何产生的
【问题讨论】:
-
这段代码来自哪里?逃跑。
-
a[n]与*(a + n)相同。填空,你就会得到你的结果。 -
@EugeneSh。我们边做边学。没什么好害怕的。
-
@nicomp 我害怕机构会给学生提供错误的练习。
标签: c arrays pointers array-indexing