
这个编译可以通过,就是黑屏,有hxd知道这个为啥算不出来22222222222222
这个应该是因为你在求数组和的函数sum_array()里面,p指针++后,数组越界了,用一个临时指针保存p指针的值后,用他来用做判断是否在数组范围内即可,修改如下:
#include <stdio.h>
#define N 10
int sum_array(const int * p,int n){
int sum=0;
const int * tp = p;
for(;p<tp+n;p++){
sum+=*p;
}
return sum;
}
int main(void){
int a[10] = {1,2,3,4,5,6,7,8,9,0};
printf("total:%d",sum_array(&a[0],N));
return 0;
}
