//This program demonstrates that an array element //can be passed to a function like any other variable. #include <iostream> using namespace std; void showValue(int); // Function prototype int main() { const int ARRAY_SIZE = 8; int collection[ARRAY_SIZE] = {5, 10, 15, 20, 25, 30, 35, 40}; for (int index = 0; index < ARRAY_SIZE; index++) showValue(collection[index]); cout << endl; return 0; } void showValue(int num) { cout << num << " "; }程式輸出結果:
5 10 15 20 25 30 35 40
此程式中,每次執行迴圈時都會將 collection 陣列的一個元素傳遞給 showValue 函數。因為 collection 陣列的元素是 int 整數,所以每次呼叫時都會將一個 int 值傳遞給 showValue 函數。請注意這在 showValue 函數原型和函數頭中是如何指定的。實際上,showValue 只知道它正在接收一個 int,至於資料是不是來源於一個陣列則無關緊要。void showValues (int nums[], int size) { for (int index = 0; index < size; index++) cout << nums[index] << " "; cout << endl; }請注意,與包含值的陣列一起,陣列的大小也被傳遞給 showValues。這樣就可以知道需要處理多少個值。
// This program shows how to pass an entire array to a function. #include <iostream> using namespace std; void showValues(int intArray[], int size); // Function prototype int main() { const int ARRAY_SIZE = 8; int collection[ARRAY_SIZE] = {5, 10, 15, 20, 25, 30, 35, 40}; cout << "The array contains the valuesn"; showValues(collection, ARRAY_SIZE); return 0; } void showValues (int nums[], int size) { for (int index = 0; index < size; index++) cout << nums[index] << " "; cout << endl; }程式輸出結果為:
The array contains the values
5 10 15 20 25 30 35 40
void showValues(int [],int);
這仍然表示第一個 showValues 形參將接收一個整數陣列的地址,第二個形參則接收一個整數值。showValues(collection, ARRAY_SIZE);
第一個實參是傳遞給函數的陣列的名稱。請記住,在 C++ 中,沒有方括號和下標的陣列的名稱實際上是陣列的開始地址。在這個函數呼叫中,collection 陣列的地址被傳遞給函數。第二個實參是該陣列的大小。