C++ ไม่อนุญาตให้ส่งผ่านอาร์เรย์ทั้งหมดเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน อย่างไรก็ตาม คุณสามารถส่งตัวชี้ไปยังอาร์เรย์ได้โดยการระบุชื่ออาร์เรย์โดยไม่มีดัชนี
หากคุณต้องการส่งอาร์เรย์มิติเดียวเป็นอาร์กิวเมนต์ในฟังก์ชัน คุณจะต้องประกาศพารามิเตอร์อย่างเป็นทางการของฟังก์ชันด้วยวิธีใดวิธีหนึ่งจากสามวิธีต่อไปนี้ และวิธีการประกาศทั้งสามวิธีให้ผลลัพธ์ที่คล้ายคลึงกัน เนื่องจากแต่ละวิธีบอกคอมไพเลอร์ว่าตัวชี้จำนวนเต็มกำลังดำเนินอยู่ ที่จะได้รับ
มี 3 วิธีในการส่งผ่านอาร์เรย์ไปยังฟังก์ชัน -
-
พารามิเตอร์ทางการเป็นตัวชี้
void myFunction(int *param) {
// Do something
} -
พารามิเตอร์ทางการเป็นอาร์เรย์ขนาด
void myFunction(int param[10]) {
// Do something
}
-
พารามิเตอร์ทางการเป็นอาร์เรย์ที่ไม่มีขนาด
void myFunction(int param[]) {
// Do something
} ตัวอย่าง
คุณสามารถใช้มันได้ดังนี้ -
#include<iostream>
using namespace std;
void arrayAccept(int arr[]) {
cout << "first element is: " << arr[0];
}
int main() {
int arr[2];
arr[0] = 0;
arr[1] = 1;
arrayAccept(arr);
return 0;
} ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
first element of array is 0