C++ มีส่วนที่ไม่เข้าใจ รบกวนด้วยครับ

#include <stdio.h>
#include <conio.h>

class CFile
{
   FILE *fp;
   char buffer[256];
public:
   CFile (char fname[256]
   {
      fp=fopen (fname,"rt");
   }
   int NotEnd()
   {
      if( !feof(fp))
      {
         fgets(buffer,256,fp);
         return 1;
      }
      else
      {
         return 0;
      }
   }
   char *Getstring()      //ไม่เข้าใจส่วนนี้ครับ buffer ไม่ได้เป็น pointer ทำไมต้องให้ฟังชั่นประกาศเป็นpointer ด้วยครับ
   {                            // รบกวนขอคำจำกัดความที่จะอธิบายจุดนี้ให้หน่อยได้มั้ยครับ ไปต่อไม่ได้จริงๆ
      return buffer;      // ขอขอบคุณล่วงหน้านะครับ
   }
   ~CFile()
   {
      fclose(fp);
   }
};

void mani()
{
   CFile f1("data.txt"), f2("info.txt");
   while(f1.NotEnd())
   {
      printf("%s",f1.GetString());
   }
while(f2.NotEnd())
   {
      printf("%s",f2.GetString());
   }
   getch();
}
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
buffer เป็นไทป์อาร์เรย์ โดยนิยามถ้าคุณใช้ชื่อของอาร์เรย์โดยไม่มีก้ามปู [ ] มันหมายถึง address ของอาร์เรย์นั้น

char *Getstring() หมายความว่า ฟังก์ชันนี้ return pointer ไม่ได้หมายความว่าฟังก์ชันเป็น pointer

ดังนั้น return buffer จะคืน address ของอาร์เรย์ buffer ไปให้ผู้เรียก
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่