[请教]新手上路,请教个指针问题
向各位大虾请教
我编了一个求奇数之和、偶数之和的小函数;
如下:
void fun_CalTotal(int *a, int size, int *odd, int *even)
{
for(int i=0; i<n; i++)
{
if((*(a+i))%2)
*odd += a[i];
else
*even += a[i];
}
return;
}
但调用后,结果很奇怪;比如我输入int a[] = {1,8,2,3,11,6};结果是很大的负数;
作如下修正后即可正确运行:
void fun_CalTotal(int *a, int n, int *odd, int *even)
{
static int tempOddTotal = 0, tempEvenTotal = 0;
for(int i=0; i<n; i++)
{
if((*(a+i))%2)
tempOddTotal += *(a+i);
else
tempEvenTotal +=*(a+i);
}
*odd = tempOddTotal;
*even = tempEvenTotal;
return;
}
请问这是怎么一回事?