In C + +, if you want to pass an array to a function, it is generally passed two parameters an array pointer and an array size.
Passing an array or pointer in alone can result in an incomplete array.
Do an experiment:
#include <iostream>using namespacestd;intGetaverage (intarr[]);intGetaverage (intarr[]) { inti; intLen = (sizeof(arr)/sizeof(int)); intsum =0; int*p =arr; for(i =0; i < Len; i++) {sum+= *p; P++; } returnSum/Len;}intMain () {intArr[] = {1,2,3,3,4,5}; printf ("the average of the array is:%d \ n", Getaverage (arr)); return 0;}
Output:
1 Please press any key to continue ...
#include <iostream>using namespacestd;intGetaverage (intarr[]);intGetaverage (intArr[],intLen) { inti; intsum =0; int*p =arr; for(i =0; i < Len; i++) {sum+= *p; P++; } returnSum/Len;}intMain () {intArr[] = {1,2,3,3,4,5}; intLen = (sizeof(arr)/sizeof(int)); printf ("the average of the array is:%f \ n", Getaverage (arr, Len)); return 0;}
Output:
3 Please press any key to continue ...
C + + to function array parameters