如何使用while循环求和指针所指向的所有项目

时间:2019-03-29 00:56:51

标签: c

我正在为我的编码类进行练习,但是我很难弄清楚如何使用while循环来累加指针所指向的项。我想使用计数来跟踪所指向的项目数。我对指针不是很熟悉,因为我刚刚开始学习它们。了解如何执行此操作的任何帮助都将非常棒。

(int*)malloc(sizeof(array));
int pointer_sum(int count, int* array){
    while (count > 0) {

    }
}

我需要使用指针算法对指针所指向的所有项求和。

2 个答案:

答案 0 :(得分:1)

您知道整数序列的起点(指针!),并且知道变量count的序列长度。然后,您可以像使用有效的 array 一样使用指针。

int pointer_sum(int count, int* array){
    int i, sum = 0;
    for(i = 0; i < count; ++i) {
        sum += array[i];
    }
    return sum;
}

如果您不使用for循环,则应该知道每个for循环都可以轻松地转换为while循环。

int pointer_sum(int count, int* array){
    int i, sum;

    i = 0;
    sum = 0;
    while(i < count) {
        sum += array[i];
        ++i;
    }
    return sum;
}

如果您确实需要使用指针算术,应该知道a[i]的工作原理类似于*(a+i)

int pointer_sum(int count, int* array){
    int i, sum;

    i = 0;
    sum = 0;
    while(i < count) {
        sum += *(array+i);
        ++i;
    }
    return sum;
}

答案 1 :(得分:0)

当然,看起来第一个参数是您传入的数组的大小,第二个参数是指向该数组的指针?假设这是真的,您的代码将如下所示:

int result = 0;
for(int i = 0; i < count; ++i)
{
    result += array[i];
}
return result;