我正在为我的编码类进行练习,但是我很难弄清楚如何使用while循环来累加指针所指向的项。我想使用计数来跟踪所指向的项目数。我对指针不是很熟悉,因为我刚刚开始学习它们。了解如何执行此操作的任何帮助都将非常棒。
(int*)malloc(sizeof(array));
int pointer_sum(int count, int* array){
while (count > 0) {
}
}
我需要使用指针算法对指针所指向的所有项求和。
答案 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;