从C中的最后一个元素减去一个数组

时间:2014-11-30 23:24:57

标签: c

我想从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;
}

但我当然做错了什么。如果你能帮助我理解我的错误,我会非常感激。

2 个答案:

答案 0 :(得分:2)

您有两个等效的选项。

pointer = &x[10];
pointer = x + 10;

要么达到使指针指向x的第10个元素的效果。

答案 1 :(得分:1)

pointer = x[10];应为pointer = &x[10];

您将pointer设置为整数值x[10]。您要做的是将pointer设置为x中最后一个元素的地址。

相关问题