【发布时间】:2019-07-17 18:27:24
【问题描述】:
我有一个关于打印指针值和数组的问题。
int arr[5] = { 1, 2, 3, 4, 5 };
int * ptr = arr;
for (int i = 0; i < 5; i++) {
(*ptr) += 2;
ptr++;
printf("%d", (*ptr));
}
上面是我先输入的,但没有用。所以我删除了 printf 行并输入了一个新代码,就是这个。它奏效了。
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
我明白为什么第二个有效,但仍然不明白为什么第一个无效。
预期的输出是 3 4 5 6 7 但第一个代码的实际输出是 2 3 4 5 -858993460
【问题讨论】:
-
您在错误的位置增加了 ptr。在 for 循环 (
i++, ptr ++) 或 在 printf. 中增加它或者
标签: c