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

วิธีส่งอาร์เรย์โดยอ้างอิง (Pass by Reference) ใน C++

หากเราส่งที่อยู่ของอาร์เรย์ขณะเรียกฟังก์ชัน เรียกว่า function call by reference ฟังก์ชันควรมีพารามิเตอร์เป็น pointer เพื่อรับที่อยู่ที่ส่งมา

โค้ดตัวอย่าง

#include <iostream>
using namespace std;

void show(int *num) {
    cout << *num;
}

int main() {
    int a[] = {3, 2, 1, 6, 7, 4, 5, 0, 10, 8};
    for (int i = 0; i < 10; i++) {
        show(&a[i]); // ส่งที่อยู่ของแต่ละองค์ประกอบ
    }
    return 0;
}

ผลลัพธ์

32167450108

คำอธิบายเพิ่มเติม: ตัวอย่างนี้ส่งที่อยู่ของแต่ละสมาชิก (&a[i]) ไปทีละตัว ไม่ใช่ส่งอาร์เรย์ทั้งลูก ใน C++ สามารถส่งอาร์เรย์โดยอ้างอิงจริงได้ด้วย syntax:

void func(int (&arr)[10]); // reference to array of 10 int
void func(int (&arr)[]);   // C++20: reference to array of unknown bound

หรือใช้ std::array/std::vector/std::span ซึ่งทันสมัยและปลอดภัยกว่า