Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การส่งอาร์เรย์ 1 มิติไปยังฟังก์ชันใน C++


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 แทน