指针数组小问题
double inner_product(const double *a, const double *b, int n); a和b都指向长度为n的数组。函数返回a[0]*b[0]+a[1]*b[1]+...+a[n-1]*b[n-1],要求使用指针算术运算而不是取下标来访问数组元素。
程序代码:
楼主的本来意图,按要求用指针(换句话说,消除变量i和所有用[]运算符的地方)
//double inner_product(const double a[], const double b[], int n)
//{
// int sum = 0, i;
//for (i = 0; i < n; i++){
// sum = a[i] * b[i];
// sum += sum;
// }
// return sum;
// }
程序代码:
double inner_product(const double *a, const double *b, int n)
{
int *sum;
for (sum = a; sum < n;){
*sum = (*a) * (*b);
*sum += *sum;
sum++;
}
return *sum;
}
这样写正确吗?
[ 本帖最后由 达尔文 于 2015-9-29 15:45 编辑 ]









初学指针,感觉很是模糊,感谢指点

楼主的代码本掌柜几乎看不懂想要干什么,不存在指点之说