C ++ ไม่ส่งคืนอาร์เรย์ทั้งหมด แต่สามารถส่งคืนตัวชี้ไปยังอาร์เรย์ได้ ภายนอกฟังก์ชันไม่สามารถส่งคืนที่อยู่ของตัวแปรท้องถิ่นได้ การทำให้ตัวแปรท้องถิ่นเป็นแบบคงที่ จะสามารถส่งคืนที่อยู่ของตัวแปรท้องถิ่นได้
ต่อไปนี้เป็นไวยากรณ์เพื่อส่งคืนตัวชี้
int * function_name()
{ body } ที่นี่
function_name − ชื่อของฟังก์ชันที่ผู้ใช้กำหนด
ต่อไปนี้คือตัวอย่างการคืนค่าอาร์เรย์จากฟังก์ชัน
ตัวอย่าง
#include <iostream>
using namespace std;
int * ret() {
static int x[3];
for(int i=0 ; i<5 ; i++) {
cout << " " <<&x[i];
}
return x;
}
int main() {
ret();
return 0;
} ผลลัพธ์
0x601180 0x601184 0x601188 0x60118c 0x601190
ในโปรแกรมข้างต้น ฟังก์ชัน ret() จะถูกสร้างขึ้นและจะคืนค่าอาร์เรย์ มีการประกาศอาร์เรย์ประเภท int แบบคงที่และพิมพ์ที่อยู่ของบล็อกหน่วยความจำที่จัดสรรไว้
int * ret() {
static int x[3];
for(int i=0 ; i<5 ; i++) {
cout << " " <<&x[i];
}
return x;
} ในฟังก์ชัน main() ฟังก์ชัน ret() จะถูกเรียก −
ret();