我想从C中的最后一个元素递减一个数组。我首先编写了以下代码来从第一个元素中增加一个数组:
#include<stdio.h>
int x[11] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *pointer, count;
int main (void) {
pointer = x;
for (count = 0; count < 11; count++)
printf("%d\n", *pointer++);
return 0;
}
这很好用。但后来我尝试通过修改代码来减少元素:
#include<stdio.h>
int x[11] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *pointer, count;
int main (void) {
pointer = x[10];
for (count = 0; count < 11; count++)
printf("%d\n", *pointer--);
return 0;
}
但我当然做错了什么。如果你能帮助我理解我的错误,我会非常感激。
答案 0 :(得分:2)
您有两个等效的选项。
pointer = &x[10];
pointer = x + 10;
要么达到使指针指向x的第10个元素的效果。
答案 1 :(得分:1)
pointer = x[10];
应为pointer = &x[10];
。
您将pointer
设置为整数值x[10]
。您要做的是将pointer
设置为x
中最后一个元素的地址。