在C++中,如果要给一个函数传入一个数组,一般都是传入两个参数一个数组指针和一个数组大小。
单独传递一个数组或者指针进去,会导致数组不完整。
做个试验:
#include <iostream> using namespace std; int getAverage(int arr[]); int getAverage(int arr[]) { int i; int len = (sizeof(arr) / sizeof(int)); int sum = 0; int *p = arr; for (i = 0; i < len; i++) { sum += *p; p++; } return sum / len; } int main() { int arr[] = {1, 2, 3, 3, 4, 5}; printf("数组的平均值是: %d ", getAverage(arr)); return 0; }
输出:
数组的平均值是: 1 请按任意键继续. . .
#include <iostream> using namespace std; int getAverage(int arr[]); int getAverage(int arr[], int len) { int i; int sum = 0; int *p = arr; for (i = 0; i < len; i++) { sum += *p; p++; } return sum / len; } int main() { int arr[] = {1, 2, 3, 3, 4, 5}; int len = (sizeof(arr) / sizeof(int)); printf("数组的平均值是: %f ", getAverage(arr, len)); return 0; }
输出:
数组的平均值是: 3 请按任意键继续. . .