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

จะคืนค่าอาร์เรย์จากฟังก์ชันใน C ++ ได้อย่างไร


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();