- C++ 基礎
- C++ 首頁
- C++ 概述
- C++ 環境設定
- C++ 基本語法
- C++ 註釋
- C++ Hello World
- C++ 省略名稱空間
- C++ 常量/字面量
- C++ 關鍵字
- C++ 識別符號
- C++ 資料型別
- C++ 數值資料型別
- C++ 字元資料型別
- C++ 布林資料型別
- C++ 變數型別
- C++ 變數作用域
- C++ 多個變數
- C++ 基本輸入/輸出
- C++ 修飾符型別
- C++ 儲存類
- C++ 運算子
- C++ 數字
- C++ 列舉
- C++ 引用
- C++ 日期和時間
- C++ 控制語句
- C++ 決策制定
- C++ if 語句
- C++ if else 語句
- C++ 巢狀 if 語句
- C++ switch 語句
- C++ 巢狀 switch 語句
- C++ 迴圈型別
- C++ while 迴圈
- C++ for 迴圈
- C++ do while 迴圈
- C++ foreach 迴圈
- C++ 巢狀迴圈
- C++ break 語句
- C++ continue 語句
- C++ goto 語句
- C++ 建構函式
- C++ 建構函式和解構函式
- C++ 複製建構函式
C++ 將陣列傳遞給函式
C++ 不允許將整個陣列作為引數傳遞給函式。但是,您可以透過指定陣列名稱而不指定索引來傳遞指向陣列的指標。
如果要將一維陣列作為引數傳遞給函式,則必須以以下三種方式之一宣告函式形式引數,並且所有三種宣告方法都會產生類似的結果,因為它們都告訴編譯器將接收一個整數指標。
方法一
形式引數作為指標如下:
void myFunction(int *param) {
.
.
.
}
方法二
形式引數作為大小固定的陣列如下:
void myFunction(int param[10]) {
.
.
.
}
方法三
形式引數作為大小不固定的陣列如下:
void myFunction(int param[]) {
.
.
.
}
現在,考慮以下函式,它將陣列作為引數以及另一個引數,並根據傳遞的引數返回透過陣列傳遞的數字的平均值:
double getAverage(int arr[], int size) {
int i, sum = 0;
double avg;
for (i = 0; i < size; ++i) {
sum += arr[i];
}
avg = double(sum) / size;
return avg;
}
現在,讓我們呼叫上述函式:
#include <iostream>
using namespace std;
// function declaration:
double getAverage(int arr[], int size);
int main () {
// an int array with 5 elements.
int balance[5] = {1000, 2, 3, 17, 50};
double avg;
// pass pointer to the array as an argument.
avg = getAverage( balance, 5 ) ;
// output the returned value
cout << "Average value is: " << avg << endl;
return 0;
}
當上述程式碼編譯並執行時,它會產生以下結果:
Average value is: 214.4
正如您所看到的,就函式而言,陣列的長度無關緊要,因為 C++ 對形式引數不執行邊界檢查。
廣告