自从我上次编程C以来已经有一段时间了,似乎我在此期间已经忘记了所有内容......我有一个非常简单的指针问题.假设我有一个通过循环迭代计算求和的函数.此函数不仅应该返回循环计数器,还要返回它计算的总和.因为我可以只返回一个值,所以我假设我能做的最好就是声明一个指针.我能这样做吗:
int loop_function(int* sum)
{
int len = 10;
for(j = 0; j < len; j++)
{
sum += j;
}
return(j);
}
....
int sum = 0;
loop_function(&sum);
printf("Sum is: %d", sum);
Run Code Online (Sandbox Code Playgroud)
或者我是否需要定义一个额外的变量,指向我传递给函数的总和?
非常感谢,马库斯
Tyl*_*nry 17
你有什么是正确的,除了这一行:
sum += j;
Run Code Online (Sandbox Code Playgroud)
既然sum是一个指针,这增加包含在指针的地址通过j,这是不是你想要的.要递增由指针指向值的j,这是通过将引用操作完成的*第一个指针,就像这样:
*sum += j;
Run Code Online (Sandbox Code Playgroud)
此外,你需要j在那里定义某个地方,但我想你知道这一点,这只是一个疏忽.