1. 程式人生 > >【C++】如何使用函式進行陣列求和?傳遞陣列指標的簡單示例程式碼

【C++】如何使用函式進行陣列求和?傳遞陣列指標的簡單示例程式碼

cookies[Arsize]

如果是輸出輸出地址的長度,比如sizeof cookies,這時輸出的是整個陣列長度

假如傳遞給了指標arr, sizeof arr 就輸出的是指標的長度

可能理解比較抽象,我們採用實際程式碼舉例:

程式碼中有詳細註釋


//通用的統計陣列的和的函式
#include<iostream>
const int ArSize = 8;
using namespace std;
int sum_arr(int arr[], int n);
void print();
int main()
{
	int cookies[ArSize] = { 1, 2, 4, 8, 16, 32, 64, 128 };
	cout << cookies << " \t 陣列地址" << endl;

	cout << sizeof cookies << " \t sizeof cookies\n";
	int sum = sum_arr(cookies, ArSize);
	cout << sum << "一共加起來就是這麼多" << endl;
	print();

	//欺騙做法
	cout << "這裡展示的是傳遞陣列時的特性" << endl;
	cout << "前三個的和是:" << sum_arr(cookies, 3)<<endl<<endl;
	cout << "結果OK" << endl;
	print();
	cout << "這裡展示的是傳遞陣列時的特性" << endl;
	cout << "後四個的和是:" << sum_arr(cookies + 4, 4) << endl << endl;
	cout << "結果OK" << endl;

	cin.get();
	return 0;


}

int sum_arr(int arr[],int n)
{
	int total = 0;
	cout << arr << "\t arr地址" << endl;
	cout << sizeof arr << "\t sizeof arr\n";
	for (int i = 0; i < n; i++)
		total = total + arr[i];
	return total;
}

void print()
{
	cout << endl;
	cout << "=======================================" << endl;
	cout << endl;
}

輸出結果: