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