#include <stdio.h> int sump(int *, int *); int main(void) { int array[] = {1, 3, 4, 7, 8}; printf("total=%d\n", sump(array,array+5)); return 0; } int sump(int * start, int * end) { int total = 0; while(start<end) total += *start++; return total; }
sump方法說明:
1 數組名多持有的指針是該數組的首地址
2 total += *start++;start指針的原型是int數組,每++一次移動一個int字節的長度,也就是取array數組下一個元素
++運算符和*具有同等優先級,同等優先級的運算符從右向左,所以是先++然后再*取值,最終移動到數組最后一個元素實現累加求和。