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